def test_set_ops(self): cs = CaseSet() cs2 = CaseSet() for case in self.caselist: cs.record_case(case) cs2.record_case(case) self.assertEqual(len(cs), len(self.caselist)-2) self.assertTrue(cs == cs2) case = cs2.pop(1) self.assertFalse(cs == cs2) self.assertTrue(cs2 < cs) self.assertFalse(cs < cs) self.assertTrue(cs <= cs) self.assertTrue(cs >= cs) self.assertFalse(cs2 > cs) self.assertFalse(cs2 > cs2) self.assertTrue(case in cs) self.assertFalse(case in cs2) self.assertTrue(case not in cs2) self.assertFalse(case not in cs) diffset = cs - cs2 self.assertEqual(len(diffset), 1) self.assertTrue(case in diffset) cs3 = CaseSet() cs4 = CaseSet() cs3.record_case(self.case1) cs3.record_case(self.case2) try: self.assertTrue(cs3.isdisjoint(cs4)) except ValueError, err: self.assertEqual(str(err), "case containers have different sets of variables")
def test_from_case(self): cs = CaseSet(self.case1) self.assertEqual(1, len(cs)) self.assertEqual(cs[0]._inputs, self.case1_dup._inputs) self.assertEqual(cs[0]._outputs, self.case1_dup._outputs) cs.record_case(self.case2) cs.record_case(self.case1_dup) self.assertEqual(2, len(cs))
def test_copy(self): cs = CaseSet() cs.record_case(self.case1) cs.record_case(self.case2) cs.record_case(self.case1_dup) cscopy = cs.copy() for c1, c2 in zip(cs, cscopy): self.assertEqual(c1, c2)
def test_iteration(self): cs = CaseSet() cs.record_case(self.case1) cs.record_case(self.case2) cs.record_case(self.case1_dup) expected = [self.case1, self.case2, self.case1_dup] for i, case in enumerate(cs): self.assertEqual(case._inputs, expected[i]._inputs) self.assertEqual(case._outputs, expected[i]._outputs)
def test_start_empty(self): cs = CaseSet() cs.record_case(self.case1) cs.record_case(self.case2) cs.record_case(self.case1_dup) self.assertEqual(2, len(cs)) self.assertEqual(cs[0]._inputs, self.case1_dup._inputs) self.assertEqual(cs[0]._outputs, self.case1_dup._outputs) self.assertEqual(cs[1]._inputs, self.case2._inputs) self.assertEqual(cs[1]._outputs, self.case2._outputs)
def test_update_empty(self): c1 = Case(inputs=[('x', 10)], outputs=[('y', 10)]) c2 = Case(inputs=[('x', 1)], outputs=[('y', 1)]) cs1 = CaseSet() cs1.record_case(c1) cs1.record_case(c2) cs2 = CaseSet() cs2.update(cs1) for c1, c2 in zip(cs1, cs2): self.assertEqual(c1, c2)
def test_start_empty_subset(self): names = ['comp1.a', 'comp2.c+comp2.d', 'comp1.b'] ins = [names[0], names[2]] outs = [names[1]] cs = CaseSet(names=names) cs.record_case(self.case1) cs.record_case(self.case2) cs.record_case(self.case1_dup) self.assertEqual(2, len(cs)) self.assertEqual(3, len(cs[0].items())) self.assertEqual(2, len(cs[0].items('in'))) self.assertEqual(1, len(cs[0].items('out'))) self.assertEqual(set(names), set(cs[0].keys())) self.assertEqual(set(ins), set(cs[0].keys('in'))) self.assertEqual(set(outs), set(cs[0].keys('out')))
def test_close(self): c1 = Case(inputs=[('x', 10)], outputs=[('y', 10)]) cs1 = CaseSet() cs1.record_case(c1) cs1.close()
def test_contains(self): cs = CaseSet() cs.record_case(self.case1) self.assertTrue(self.case1_dup in cs) self.assertFalse(self.case2 in cs) self.assertFalse(None in cs)