Esempio n. 1
0
 def test_range_with_expr(self):
     v = create_var("a")
     p = create_par("b")
     assert "(a - 1)..((b + 1) - 1)" == to_str(zn.range(v - 1, p + 1))
Esempio n. 2
0
 def test_range_step(self):
     with pytest.raises(ValueError, match="step other then 1 isn't supported, but it is 2"):
         to_str(range(1, 10, 2))
Esempio n. 3
0
 def test_range_wrong_start(self, start):
     with pytest.raises(ValueError, match=re.escape(f"start({start}) should be smaller then stop(10)")):
         print(to_str(range(start, 10)))
Esempio n. 4
0
 def test_flatten(self, v, expected):
     assert to_str(v, flatten_arg=True) == expected
Esempio n. 5
0
 def test_range(self, r, expected):
     assert to_str(r) == expected
Esempio n. 6
0
def _set_value_as_constraint(ir, variable, flags):
    # values like `var int: s = sum(a);` should be set as constraint or it won't be returned in result
    ir.constraints.append(
        _binary_op("==", variable.name, to_str(variable.value), flags_=flags))
Esempio n. 7
0
 def test_var_to_str(self, v, expected):
     assert to_str(v) == expected
Esempio n. 8
0
 def test_invert(self):
     result = ~(self.p < self.v)
     assert to_str(result) == f"(not ({self.p.name} < {self.v.name}))"
Esempio n. 9
0
 def test_tuple_and_list_to_array(self, collection, expected):
     assert to_str(collection) == expected
Esempio n. 10
0
 def test_pow_bracket(self):
     result = -3 * self.v**(2 % self.p)
     assert to_str(
         result) == f"(-3 * pow({self.v.name}, (2 mod {self.p.name})))"
     assert result.type is int
Esempio n. 11
0
 def test_binary_logical(self, op, sign):
     result = op(self.p > self.v, 2 > self.v)
     assert to_str(
         result
     ) == f"(({self.p.name} > {self.v.name}) {sign} ({self.v.name} < 2))"
Esempio n. 12
0
 def test_long_binary_op(self):
     result = 1 + self.v * 2 - self.p + self.v**self.p
     assert to_str(
         result
     ) == f"(((1 + ({self.v.name} * 2)) - {self.p.name}) + pow({self.v.name}, {self.p.name}))"
     assert result.type is int
Esempio n. 13
0
 def test_complex_binary_op(self):
     result = (1 - self.v) * (2 // self.p) >= 4
     assert to_str(
         result) == f"(((1 - {self.v.name}) * (2 div {self.p.name})) >= 4)"
     assert result.type is int
Esempio n. 14
0
 def test_simple_ariph_binary_op(self, v, op: Callable, sign: str):
     result = op(v, 1)
     assert to_str(result) == f"({v.name} {sign} 1)"
     assert result.type is int
Esempio n. 15
0
 def test_indexes(self, array, pos, expected):
     assert to_str(array[pos]) == expected
Esempio n. 16
0
 def test_generator_to_str(self, gen, expected):
     assert expected == to_str(gen)
Esempio n. 17
0
 def test_slice(self, array, pos, expected):
     assert expected == to_str(array[pos])
Esempio n. 18
0
 def test_name(self, name, arg):
     a = zn.Set(arg)
     a._name = name
     assert name == to_str(a)