Exemplo n.º 1
0
 def test_gene_bool(self):
     # Ensure we can handle values in syms which are True / False
     syms = {'foo:baz': True, 'bar:duck': False}
     self.eq(s_gene.eval('foo:baz == 1', syms=syms), 1)
     self.eq(s_gene.eval('bar:duck == 0', syms=syms), 1)
     self.eq(s_gene.eval('foo:baz != 0', syms=syms), 1)
     self.eq(s_gene.eval('bar:duck != 1', syms=syms), 1)
Exemplo n.º 2
0
    def test_gene_call(self):
        def foo(x, y, z):
            return x + y + z

        syms = {'foo': foo}

        self.eq(s_gene.eval('foo(1,2,3)', syms=syms), 6)
        self.eq(s_gene.eval('foo(foo(1,2,3),9+9,3>2)', syms=syms), 25)
Exemplo n.º 3
0
 def test_gene_null(self):
     # Ensure that if we compare values against None/null objects, we don't match
     syms = {'foo:baz': None, 'spam:eggs': 10}
     self.eq(s_gene.eval('foo:baz == 1', syms=syms), 0)
     self.eq(s_gene.eval('foo:baz == 0', syms=syms), 0)
     self.eq(s_gene.eval('foo:baz != 0', syms=syms), 1)
     self.eq(s_gene.eval('foo:baz != 1', syms=syms), 1)
     self.eq(s_gene.eval('foo:baz == "asdf"', syms=syms), 0)
Exemplo n.º 4
0
    def test_gene_callcall(self):
        def foo():
            return 20

        def bar():
            return foo

        syms = {'bar': bar}
        self.eq(s_gene.eval('bar()()', syms=syms), 20)
Exemplo n.º 5
0
    def test_gene_call_noargs(self):
        def foo():
            return 20

        syms = {'foo': foo}
        self.eq(s_gene.eval('foo()', syms=syms), 20)
Exemplo n.º 6
0
 def test_gene_empty_value(self):
     self.eq(s_gene.eval('empty', syms={'empty': None}), None)
Exemplo n.º 7
0
 def test_gene_shift(self):
     self.eq(s_gene.eval(' 1 << 2 + 1'), 8)
     self.eq(s_gene.eval(' 0x80 >> 0x00000004'), 8)
Exemplo n.º 8
0
    def test_gene_eval(self):
        def baz(x):
            return x + 20

        syms = {'foo:bar': 10, 'foo:baz': baz, 'foo:faz': 'woot'}

        self.eq(s_gene.eval('foo:bar & 1', syms=syms), 0)
        self.eq(s_gene.eval('foo:bar ^ 2', syms=syms), 8)
        self.eq(s_gene.eval('foo:bar | 1', syms=syms), 11)

        self.eq(s_gene.eval('foo:bar', syms=syms), 10)
        self.eq(s_gene.eval('foo:bar + 0x0a', syms=syms), 20)
        self.eq(s_gene.eval('foo:baz(0x0a)', syms=syms), 30)

        self.eq(s_gene.eval('20 == foo:bar + 0x0a', syms=syms), 1)
        self.eq(s_gene.eval('foo:faz == "woot"', syms=syms), 1)
        self.eq(s_gene.eval("foo:faz == 'woot'", syms=syms), 1)

        self.eq(s_gene.eval('foo:baz(10) + 10', syms=syms), 40)

        self.eq(s_gene.eval('foo:baz(10) < 100', syms=syms), 1)
        self.eq(s_gene.eval('foo:baz(10) <= 100', syms=syms), 1)

        self.eq(s_gene.eval('foo:baz(10) > 1', syms=syms), 1)
        self.eq(s_gene.eval('foo:baz(10) >= 1', syms=syms), 1)

        self.eq(s_gene.eval('foo:bar + 0x0a == 20', syms=syms), 1)
Exemplo n.º 9
0
    def test_gene_landlor(self):
        self.eq(s_gene.eval(' 10 > 3 && 10 + 10 > 19 '), 1)
        self.eq(s_gene.eval(' 10 < 3 || 10 + 10 > 19 '), 1)

        self.eq(s_gene.eval(' 10 < 3 && 10 + 10 > 19 '), 0)
        self.eq(s_gene.eval(' 10 < 3 || 10 + 10 < 19 '), 0)
Exemplo n.º 10
0
 def test_gene_pow(self):
     self.eq(s_gene.eval(' 5 + 2**3 '), 13)
Exemplo n.º 11
0
 def test_gene_comp(self):
     self.eq(s_gene.eval('5 < 4 + 4'), 1)
     self.eq(s_gene.eval('5 <= 4 + 4'), 1)
     self.eq(s_gene.eval('5 > 8 - 4 - 2'), 1)
     self.eq(s_gene.eval('5 >= 8 - 4 - 2'), 1)
Exemplo n.º 12
0
 def test_gene_prec(self):
     self.eq(s_gene.eval('5 + 3 * 2'), 11)
     self.eq(s_gene.eval('(5 + 3) * 2'), 16)
     self.eq(s_gene.eval('9 / 3 <= 1 + 2'), 1)