Пример #1
0
def test_variable_not_declared():
    assert_interface_error(
        """
        main {
            write a;
        }
    """, ReferenceNotDefined(expression="'a'"))
Пример #2
0
def test_call_extra_return_expression():
    assert_interface_error(
        """
        procedure f();
        main {
            call a = f();
        }
    """, NoReturnValue(name="f"))
Пример #3
0
def test_call_missing_return_expression():
    assert_interface_error(
        """
        function f();
        main {
            call f();
        }
    """, IgnoredReturnValue(name="f"))
Пример #4
0
def test_call_not_defined():
    assert_interface_error(
        """
        procedure f();
        main {
            call g();
        }
    """, MethodNotDeclared(name="g"))
Пример #5
0
def test_call_missing_arguments():
    assert_interface_error(
        """
        procedure f(a, b);
        main {
            call f(0);
        }
    """, InvalidNumberOfArguments(name="f", n_parameters=2, n_arguments=1))
Пример #6
0
def test_call_extra_arguments():
    assert_interface_error(
        """
        procedure f();
        main {
            call f(0, 1);
        }
    """, InvalidNumberOfArguments(name="f", n_parameters=0, n_arguments=2))
Пример #7
0
def test_variable_reused():
    assert_interface_error(
        """
        main {
            read a;
            read a;
        }
    """, ReferenceAlreadyDefined(expression="'a'"))
Пример #8
0
def test_variable_not_written():
    assert_interface_error(
        """
        function f();
        
        main {
            call x = f();
        }
    """, ReferenceNotUsed(expression="x"))
Пример #9
0
def test_callback_accept_scalars():
    assert_interface_error(
        """
        procedure f() callbacks {
            procedure cb(a[]);
        }

        main {
        }
    """, CallbackParameterNotScalar(parameter="'a[]'"))
Пример #10
0
def test_variable_not_declared_for():
    assert_interface_error(
        """
        procedure p(t[]);
        main {
            for i to a {
                read b[i];
            }
            call p(b);
        }
    """, ReferenceNotDefined(expression="'a'"))
Пример #11
0
def test_call_argument_wrong_type():
    assert_interface_error(
        """
        procedure f(a[]);
        main {
            call f(0);
        }
    """,
        InvalidArgument(
            name="f",
            parameter="a",
            dimensions=1,
            argument="'0'",
            argument_dimensions=0,
        ))