Пример #1
0
def test_check_function():
    user_data = {"formulas": [["SUM(B1)"]]}
    s = setup_state(user_data, user_data, "A1")
    with pytest.raises(
            TF,
            match=r"In cell `A1`, did you use the `AVERAGE\(\)` function\?"):
        check_function(s, name="AVERAGE")
Пример #2
0
def test_has_equal_reference_bas():
    s = setup_state({"formulas": [["=$A$1"]]}, {"formulas": [["=$B$1"]]}, "A1")
    with pytest.raises(
            TF,
            match=r"In cell `A1`, did you use the absolute reference `\$B\$1`\?"
    ):
        has_equal_references(s, absolute=True)
Пример #3
0
def test_check_charts_trans_on_solution(solution_data, trans, correct):
    user_data = deepcopy(solution_data)
    solution_data = trans(deepcopy(solution_data))
    # sct_range is irrelevant in charts
    s = setup_state(user_data, solution_data, "A1")
    with verify_success(correct):
        has_equal_charts(s)
Пример #4
0
def test_check_range(field, field_msg, patt):
    s = setup_state(
        {
            "values": [[1]],
            "formulas": [["=1"]]
        },
        {
            "values": [[1, 2]],
            "formulas": [["=1"]]
        },
        "B1",
    )
    with pytest.raises(TF, match=patt):
        check_range(s, field, field_msg)
Пример #5
0
def test_format_string_messaging():
    s = setup_state(
        {
            "values": [["A", "B"]],
            "formulas": [["=A1", "=B1"]]
        },
        {
            "values": [["A", "A"]],
            "formulas": [["=A1", "=A1"]]
        },
        "A1",
    )
    with pytest.raises(TF, match=r"Check cell `A1` again."):
        check_operator(s,
                       operator="<",
                       missing_msg="Check cell `{range}` again.")
Пример #6
0
def test_check_pivot_calculated_fields(solution_data_calculated_field, trans,
                                       sct_range, correct, message_contains):
    user_data = trans(deepcopy(solution_data_calculated_field))
    s = setup_state(user_data, solution_data_calculated_field, sct_range)
    with verify_success(correct, message_contains):
        has_equal_pivot(s)
Пример #7
0
def test_has_equal_reference():
    s = setup_state({"formulas": [["=A1"]]}, {"formulas": [["=B1"]]}, "A1")
    with pytest.raises(
            TF, match=r"In cell `A1`, did you use the reference `B1`\?"):
        has_equal_references(s)
Пример #8
0
def test_has_equal_formula():
    s = setup_state({"formulas": [["=1"]]}, {"formulas": [["=2"]]}, "A1")
    with pytest.raises(
            TF, match=r"In cell `A1`, did you use the correct formula\?"):
        has_equal_formula(s)
Пример #9
0
def test_has_equal_value():
    s = setup_state({"values": [[1]]}, {"values": [[2]]}, "A1")
    with pytest.raises(TF, match=r"The value at `A1` is not correct."):
        has_equal_value(s)
Пример #10
0
def test_check_operator():
    user_data = {"formulas": [["=1 + 2"]]}
    s = setup_state(user_data, user_data, "A1")
    with pytest.raises(TF,
                       match=r"In cell `A1`, did you use the `/` operator\?"):
        check_operator(s, operator="/")
Пример #11
0
def test_check_operator_normalize(user_data_normalize, sct_range, operator, correct):
    s = setup_state(user_data_normalize, user_data_normalize, sct_range)
    with verify_success(correct):
        check_operator(s, operator=operator)
Пример #12
0
def test_check_function_normalize(user_data_normalize, sct_range, function,
                                  correct):
    s = setup_state(user_data_normalize, user_data_normalize, sct_range)
    with verify_success(correct):
        check_function(s, name=function)
Пример #13
0
def test_check_pivots_two_values(solution_data_two_values, trans, sct_range,
                                 correct, message_contains):
    user_data = trans(deepcopy(solution_data_two_values))
    s = setup_state(user_data, solution_data_two_values, sct_range)
    with verify_success(correct, message_contains):
        has_equal_pivot(s)
Пример #14
0
def test_has_equal_formula_normalization(user_data_norm_seed, trans, sct_range,
                                         correct):
    user_data = trans(deepcopy(user_data_norm_seed))
    s = setup_state(user_data, user_data_norm_seed, sct_range)
    with verify_success(correct):
        has_equal_formula(s)
def test_has_equal_number_format(user_data_seed, trans, sct_range, correct, match):
    user_data = trans(deepcopy(user_data_seed))
    s = setup_state(user_data, user_data_seed, sct_range)
    with verify_success(correct, match=match):
        has_equal_number_format(s)
Пример #16
0
def test_has_equal_value_precision(user_data_seed, trans, sct_range, correct):
    user_data = trans(deepcopy(user_data_seed))
    s = setup_state(user_data, user_data_seed, sct_range)
    with verify_success(correct):
        has_equal_value(s)
Пример #17
0
def test_check_range(user_data_seed, trans, sct_range, correct):
    user_data = trans(deepcopy(user_data_seed))
    s = setup_state(user_data, user_data_seed, sct_range)
    with verify_success(correct):
        check_range(s, field="values", field_msg="value")
def test_check_absolute_references_normalize(solution_data_normalize, trans,
                                             sct_range, correct):
    user_data = trans(deepcopy(solution_data_normalize))
    s = setup_state(user_data, solution_data_normalize, sct_range)
    with verify_success(correct):
        has_equal_references(s, absolute=True)
Пример #19
0
def test_has_code():
    user_data = {"formulas": [["missing"]]}
    s = setup_state(user_data, user_data, "A1")
    with pytest.raises(
            TF, match=r"In cell `A1`, did you use the correct formula\?"):
        has_code(s, "something")
Пример #20
0
def test_check_function_index(user_data_index, sct_range, function, index,
                              correct):
    s = setup_state(user_data_index, user_data_index, sct_range)
    with verify_success(correct):
        check_function(s, name=function, index=index)
Пример #21
0
def test_check_regex_fixed(user_data_seed, trans, sct_range, pattern, correct):
    user_data = trans(deepcopy(user_data_seed))
    s = setup_state(user_data, user_data, sct_range)
    with verify_success(correct):
        has_code(s, pattern, fixed=True)
Пример #22
0
def test_has_equal_conditional_formats_2(solution_data_2, trans, correct, match):
    user_data = trans(deepcopy(solution_data_2))
    # sct_range is irrelevant in conditional formats
    s = setup_state(user_data, solution_data_2, "A1")
    with verify_success(correct, match=match):
        has_equal_conditional_formats(s)
Пример #23
0
def test_check_reference(solution_data, trans, sct_range, correct):
    user_data = trans(deepcopy(solution_data))
    s = setup_state(user_data, solution_data, sct_range)
    with verify_success(correct):
        has_equal_references(s)