def test_extend_unique(self): a = self.node_from_expr("a = 1") b = self.node_from_expr("b = 2") c = self.node_from_expr("c = 3") beg = NodeList.from_list([a]) end = NodeList.from_list([a, b,c]) beg.extend(end, unique=True) self.assertEquals(beg[0], a) self.assertEquals(beg[1], b) self.assertEquals(beg[2], c)
def test_print_nodes(self): a = self.node_from_expr("a = 1") b = self.node_from_expr("b = 2") c = self.node_from_expr("c = 3") nlst= NodeList.from_list([a, b, c]) nlst.print_nodes(StdioFile.stdout())
def test_count(self): a = self.node_from_expr("a = 1") b = self.node_from_expr("b = 2") c = self.node_from_expr("c = 3") nlst= NodeList.from_list([a, a, b]) self.assertEqual(nlst.count(a), 2) self.assertEqual(nlst.count(b), 1) self.assertEqual(nlst.count(c), 0)
def test_length(self): nlst= NodeList.empty() self.assertEqual(0, len(nlst)) a = self.node_from_expr("a = 1") b = self.node_from_expr("b = 2") c = self.node_from_expr("c = 3") nlst= NodeList.from_list([a, b, c]) self.assertEqual(3, len(nlst))
def test_delitem(self): a = self.node_from_expr("a = 1") lst = NodeList.from_list([a]) self.assertEqual(1, len(lst)) self.assertTrue(a in lst) del lst[0] self.assertTrue(a not in lst) self.assertEqual(0, len(lst))
def test_reverse(self): a = self.node_from_expr("a = 1") b = self.node_from_expr("b = 2") c = self.node_from_expr("c = 3") nlst= NodeList.from_list([a, b, c]) nlst.reverse() self.assertEqual(3, len(nlst)) self.assertEqual(c, nlst[0]) self.assertEqual(b, nlst[1]) self.assertEqual(a, nlst[2])
def test_delitem(self): a = self.node_from_expr("a = 1") b = self.node_from_expr("b = 2") lst = NodeList.from_list([a, b]) self.assertEqual(2, len(lst)) self.assertTrue(a in lst) del lst[1] self.assertTrue(b not in lst) self.assertEqual(1, len(lst))
def test_is_complete(self): with BmcSupport(): sexp_fsm = master_bool_sexp_fsm() be_fsm = master_be_fsm() trace = Trace.create("Dummy example", TraceType.COUNTER_EXAMPLE, sexp_fsm.symbol_table, sexp_fsm.symbols_list, is_volatile=True) # vacuously true self.assertTrue(trace.is_complete(NodeList.from_list([]))) v = be_fsm.encoding.by_name['v'].name self.assertFalse(trace.is_complete(NodeList.from_list([v]))) step = trace.steps[1] yes = Node.from_ptr(parse_simple_expression("TRUE")) step += (v, yes) self.assertTrue(trace.is_complete(NodeList.from_list([v])))
def test_from_list(self): a = self.node_from_expr("a = 1") b = self.node_from_expr("b = 2") c = self.node_from_expr("c = 3") lst = [a, b, c] nlst= NodeList.from_list(lst) self.assertTrue(a in nlst) self.assertTrue(b in nlst) self.assertTrue(c in nlst) self.assertEqual(nlst[0], a) self.assertEqual(nlst[1], b) self.assertEqual(nlst[2], c)
def test_is_complete(self): with BmcSupport(): sexp_fsm = master_bool_sexp_fsm() be_fsm = master_be_fsm() trace = Trace.create( "Dummy example", TraceType.COUNTER_EXAMPLE, sexp_fsm.symbol_table, sexp_fsm.symbols_list, is_volatile=True, ) # vacuously true self.assertTrue(trace.is_complete(NodeList.from_list([]))) v = be_fsm.encoding.by_name["v"].name self.assertFalse(trace.is_complete(NodeList.from_list([v]))) step = trace.steps[1] yes = Node.from_ptr(parse_simple_expression("TRUE")) step += (v, yes) self.assertTrue(trace.is_complete(NodeList.from_list([v])))
def test_to_list(self): a = self.node_from_expr("a = 1") b = self.node_from_expr("b = 2") c = self.node_from_expr("c = 3") nlst= list(NodeList.from_list([a, b, c])) self.assertListEqual(nlst, [a, b, c])