def test_create_new_subedge_from_edge(self): """ test that you can use the TestPartitionableEdge.create-subedge method and not cause errors :return: """ vert1 = TestVertex(10, "New AbstractConstrainedVertex 1", 256) subv_from_vert1 = vert1.create_subvertex( Slice(0, 9), vert1.get_resources_used_by_atoms(Slice(0, 9), None)) vert2 = TestVertex(5, "New AbstractConstrainedVertex 2", 256) subv_from_vert2 = vert2.create_subvertex( Slice(0, 4), vert2.get_resources_used_by_atoms(Slice(0, 4), None)) edge1 = TestPartitionableEdge(vert1, vert2, "First edge") subedge1 = edge1.create_subedge(subv_from_vert1, subv_from_vert2, None, "First sub edge") self.assertEqual(subedge1.label, "First sub edge")
def test_create_new_edge_add_constraint(self): """ test creating a edge and then adding constraints in a list :return: """ constraint1 = KeyAllocatorContiguousRangeContraint() constraint2 = KeyAllocatorContiguousRangeContraint() constr = list() constr.append(constraint1) constr.append(constraint2) vert1 = TestVertex(10, "New AbstractConstrainedVertex", 256) vert2 = TestVertex(10, "New AbstractConstrainedVertex", 256) edge1 = TestPartitionableEdge(vert1, vert2, "edge 1") edge1.add_constraints(constr) for constraint in constr: self.assertIn(constraint, edge1.constraints)
def test_new_create_subvertex_from_vertex_no_constraints(self): """ test the creating of a subedge by the AbstractPartitionableEdge create subedge method will actually create a subedge of the partitioned edge type. :return: """ vert1 = TestVertex(10, "New AbstractConstrainedVertex", 256) subv_from_vert1 = vert1.create_subvertex( Slice(0, 9), vert1.get_resources_used_by_atoms(Slice(0, 9), None)) vert2 = TestVertex(10, "New AbstractConstrainedVertex", 256) subv_from_vert2 = vert2.create_subvertex( Slice(0, 9), vert2.get_resources_used_by_atoms(Slice(0, 9), None)) edge1 = TestPartitionableEdge(vert1, vert2, "edge 1") subedge = edge1.create_subedge(subv_from_vert1, subv_from_vert2) self.assertIsInstance(subedge, AbstractPartitionedEdge)
def test_create_subvertex_from_vertex_with_previous_constraints(self): """ test the create subedge command given by the TestPartitionableEdge actually works and generates a subedge with the same constraints mapped over :return: """ constraint1 = KeyAllocatorContiguousRangeContraint() vert1 = TestVertex(10, "New AbstractConstrainedVertex", 256) subv_from_vert1 = vert1.create_subvertex( Slice(0, 9), vert1.get_resources_used_by_atoms(Slice(0, 9), None)) vert2 = TestVertex(10, "New AbstractConstrainedVertex", 256) subv_from_vert2 = vert2.create_subvertex( Slice(0, 9), vert2.get_resources_used_by_atoms(Slice(0, 9), None)) edge1 = TestPartitionableEdge(vert1, vert2, "edge 1") edge1.add_constraint(constraint1) subedge = edge1.create_subedge(subv_from_vert1, subv_from_vert2) self.assertIn(constraint1, subedge.constraints)