Exemplo n.º 1
0
    def test_regref_transform(self, parser, ctx, monkeypatch):
        """Test that a Blackbird expression containing register references evaluates"""
        expr = blackbirdParser.VariableLabelContext(parser, ctx)
        expr.getText = lambda: "q2"
        expr.REGREF = lambda: True

        assert isinstance(_expression(expr), sym.Symbol)
        assert str(_expression(expr)) == "q2"
Exemplo n.º 2
0
    def test_variable(self, parser, ctx, monkeypatch):
        """Test that a Blackbird expression containing variables evaluates"""
        expr = blackbirdParser.VariableLabelContext(parser, ctx)
        expr.getText = lambda: "var1"

        with monkeypatch.context() as m:
            m.setattr(blackbird.auxiliary, "_VAR", {"var1": 5})
            assert _expression(expr) == 5
Exemplo n.º 3
0
    def test_variable_invalid(self, parser, ctx, monkeypatch):
        """Test that an error is raised if the variable does not exist"""
        expr = blackbirdParser.VariableLabelContext(parser, ctx)
        expr.getText = lambda: "var2"
        expr.start = start()

        with monkeypatch.context() as m:
            m.setattr(blackbird.auxiliary, "_VAR", {"var1": 5})
            with pytest.raises(BlackbirdSyntaxError, match="name 'var2' is not defined"):
                _expression(expr)
Exemplo n.º 4
0
    def test_p_parameter_type_error(self, parser, ctx, monkeypatch):
        """Test that an error is raised if the variable does not exist"""
        expr = blackbirdParser.VariableLabelContext(parser, ctx)
        expr.getText = lambda: "p0"
        expr.start = start()

        with monkeypatch.context() as m:
            m.setattr(blackbird.auxiliary, "_VAR", {"p0": 13})
            m.setattr(blackbird.auxiliary, "_PARAMS", ["p0"])
            with pytest.raises(TypeError, match="Invalid type for parameter."):
                _expression(expr)
Exemplo n.º 5
0
 def _var_label(key):
     """Generate a reference to blackbird variable key"""
     _var = blackbirdParser.VariableLabelContext(parser, ctx)
     _var.getText = lambda: key
     return _var