def test_binary_operators(self): u = [g0, g1, g12, g123, g1234, g134, g14, g4] v = [g12, g14, g23, g34] gs = GraphSet(u) | GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual( gs, GraphSet([g0, g1, g12, g123, g1234, g134, g14, g23, g34, g4])) gs = GraphSet(u).union(GraphSet(u), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual( gs, GraphSet([g0, g1, g12, g123, g1234, g134, g14, g23, g34, g4])) gs = GraphSet(u) gs |= GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual( gs, GraphSet([g0, g1, g12, g123, g1234, g134, g14, g23, g34, g4])) gs = GraphSet(u) gs.update(GraphSet(u), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual( gs, GraphSet([g0, g1, g12, g123, g1234, g134, g14, g23, g34, g4])) gs = GraphSet(u) & GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g12, g14])) gs = GraphSet(u).intersection(GraphSet(u), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g12, g14])) gs = GraphSet(u) gs &= GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g12, g14])) gs = GraphSet(u) gs.intersection_update(GraphSet(u), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g12, g14])) gs = GraphSet(u) - GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g4])) gs = GraphSet(u).difference(GraphSet(), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g4])) gs = GraphSet(u) gs -= GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g4])) gs = GraphSet(u) gs.difference_update(GraphSet(), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g4])) gs = GraphSet(u) ^ GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g23, g34, g4])) gs = GraphSet(u).symmetric_difference(GraphSet(), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g23, g34, g4])) gs = GraphSet(u) gs ^= GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g23, g34, g4])) gs = GraphSet(u) gs.symmetric_difference_update(GraphSet(), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g23, g34, g4])) v = [g12] gs = GraphSet(u) / GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g3, g34])) gs = GraphSet(u).quotient(GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g3, g34])) gs = GraphSet(u) gs /= GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g3, g34])) gs = GraphSet(u) gs.quotient_update(GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g3, g34])) gs = GraphSet(u) % GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g134, g14, g4])) gs = GraphSet(u).remainder(GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g134, g14, g4])) gs = GraphSet(u) gs %= GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g134, g14, g4])) gs = GraphSet(u) gs.remainder_update(GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g134, g14, g4])) gs = GraphSet(u).complement() self.assertEqual(gs, GraphSet([g0, g123, g1234, g2, g23, g234, g34, g4])) v = [g12, g14, g23, g34] gs = GraphSet(u).join(GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual( gs, GraphSet([g12, g123, g124, g1234, g134, g14, g23, g234, g34])) gs = GraphSet(u).meet(GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g12, g14, g2, g23, g3, g34, g4])) v = [g12, g14, g23, g34] gs = GraphSet(u).subgraphs(GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g12, g14, g4])) gs = GraphSet(u).supergraphs(GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g12, g123, g1234, g134, g14])) gs = GraphSet(u).non_subgraphs(GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g123, g1234, g134])) gs = GraphSet(u).non_supergraphs(GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g4])) gs1 = GraphSet({}) - GraphSet([g1, g34]) gs2 = gs1.including(GraphSet([g1, g2])) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 11) gs2 = gs1.including(g1) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 7) gs2 = gs1.including((2,1)) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 7) gs2 = gs1.including(1) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 11) self.assertRaises(KeyError, gs1.including, (1, 4)) self.assertRaises(KeyError, gs1.including, 5) gs2 = gs1.excluding(GraphSet([g1, g2])) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 3) gs2 = gs1.excluding(g1) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 7) gs2 = gs1.excluding(e2) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 6) gs2 = gs1.excluding(1) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 3) self.assertRaises(KeyError, gs1.excluding, (1, 4)) self.assertRaises(KeyError, gs1.excluding, 5) v = [g12, g14, g23, g34] gs = GraphSet(u).included(GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g12, g14, g4])) gs = GraphSet(u).included(g12) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g12]))
def test_binary_operators(self): u = [g0, g1, g12, g123, g1234, g134, g14, g4] v = [g12, g14, g23, g34] gs = GraphSet(u) | GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual( gs, GraphSet([g0, g1, g12, g123, g1234, g134, g14, g23, g34, g4])) gs = GraphSet(u).union(GraphSet(u), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual( gs, GraphSet([g0, g1, g12, g123, g1234, g134, g14, g23, g34, g4])) gs = GraphSet(u) gs |= GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual( gs, GraphSet([g0, g1, g12, g123, g1234, g134, g14, g23, g34, g4])) gs = GraphSet(u) gs.update(GraphSet(u), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual( gs, GraphSet([g0, g1, g12, g123, g1234, g134, g14, g23, g34, g4])) gs = GraphSet(u) & GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g12, g14])) gs = GraphSet(u).intersection(GraphSet(u), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g12, g14])) gs = GraphSet(u) gs &= GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g12, g14])) gs = GraphSet(u) gs.intersection_update(GraphSet(u), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g12, g14])) gs = GraphSet(u) - GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g4])) gs = GraphSet(u).difference(GraphSet(), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g4])) gs = GraphSet(u) gs -= GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g4])) gs = GraphSet(u) gs.difference_update(GraphSet(), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g4])) gs = GraphSet(u) ^ GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g23, g34, g4])) gs = GraphSet(u).symmetric_difference(GraphSet(), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g23, g34, g4])) gs = GraphSet(u) gs ^= GraphSet(v) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g23, g34, g4])) gs = GraphSet(u) gs.symmetric_difference_update(GraphSet(), GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g123, g1234, g134, g23, g34, g4])) # v = [g12] # gs = GraphSet(u) / GraphSet(v) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual(gs, GraphSet([g0, g3, g34])) # gs = GraphSet(u).quotient(GraphSet(v)) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual(gs, GraphSet([g0, g3, g34])) # gs = GraphSet(u) # gs /= GraphSet(v) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual(gs, GraphSet([g0, g3, g34])) # gs = GraphSet(u) # gs.quotient_update(GraphSet(v)) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual(gs, GraphSet([g0, g3, g34])) # gs = GraphSet(u) % GraphSet(v) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual(gs, GraphSet([g0, g1, g134, g14, g4])) # gs = GraphSet(u).remainder(GraphSet(v)) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual(gs, GraphSet([g0, g1, g134, g14, g4])) # gs = GraphSet(u) # gs %= GraphSet(v) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual(gs, GraphSet([g0, g1, g134, g14, g4])) # gs = GraphSet(u) # gs.remainder_update(GraphSet(v)) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual(gs, GraphSet([g0, g1, g134, g14, g4])) gs = GraphSet(u).complement() self.assertEqual(gs, GraphSet([g0, g123, g1234, g2, g23, g234, g34, g4])) # v = [g12, g14, g23, g34] # gs = GraphSet(u).join(GraphSet(v)) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual( # gs, GraphSet([g12, g123, g124, g1234, g134, g14, g23, g234, g34])) # gs = GraphSet(u).meet(GraphSet(v)) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual(gs, GraphSet([g0, g1, g12, g14, g2, g23, g3, g34, g4])) # v = [g12, g14, g23, g34] # gs = GraphSet(u).subgraphs(GraphSet(v)) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual(gs, GraphSet([g0, g1, g12, g14, g4])) # gs = GraphSet(u).supergraphs(GraphSet(v)) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual(gs, GraphSet([g12, g123, g1234, g134, g14])) # gs = GraphSet(u).non_subgraphs(GraphSet(v)) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual(gs, GraphSet([g123, g1234, g134])) # gs = GraphSet(u).non_supergraphs(GraphSet(v)) # self.assertTrue(isinstance(gs, GraphSet)) # self.assertEqual(gs, GraphSet([g0, g1, g4])) gs1 = GraphSet({}) - GraphSet([g1, g34]) gs2 = gs1.including(GraphSet([g1, g2])) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 11) gs2 = gs1.including(g1) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 7) gs2 = gs1.including((2, 1)) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 7) gs2 = gs1.including(1) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 11) self.assertRaises(KeyError, gs1.including, (1, 4)) self.assertRaises(KeyError, gs1.including, 5) gs2 = gs1.excluding(GraphSet([g1, g2])) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 3) gs2 = gs1.excluding(g1) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 7) gs2 = gs1.excluding(e2) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 6) gs2 = gs1.excluding(1) self.assertTrue(isinstance(gs2, GraphSet)) self.assertEqual(len(gs2), 3) self.assertRaises(KeyError, gs1.excluding, (1, 4)) self.assertRaises(KeyError, gs1.excluding, 5) v = [g12, g14, g23, g34] gs = GraphSet(u).included(GraphSet(v)) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g12, g14, g4])) gs = GraphSet(u).included(g12) self.assertTrue(isinstance(gs, GraphSet)) self.assertEqual(gs, GraphSet([g0, g1, g12]))