def test_contiguous_key_range_constraint(self): c1 = ContiguousKeyRangeContraint() c2 = ContiguousKeyRangeContraint() self.assertEqual(c1, c2) self.assertNotEqual(c1, "c1") r = "KeyAllocatorContiguousRangeConstraint()" self.assertEqual(str(c1), r) self.assertEqual(repr(c1), r) d = {} d[c1] = 1 d[c2] = 2 self.assertEqual(len(d), 1) self.assertEqual(d[c1], 2)
def get_outgoing_partition_constraints(self, partition): """ Gets the constraints for partitions going out of this vertex :param partition: the partition that leaves this vertex :return: list of constraints """ return [ContiguousKeyRangeContraint()]
def constraint_from_json(json_dict, graph=None): if json_dict["class"] == "BoardConstraint": return BoardConstraint(json_dict["board_address"]) if json_dict["class"] == "ChipAndCoreConstraint": if "p" in json_dict: p = json_dict["p"] else: p = None return ChipAndCoreConstraint(json_dict["x"], json_dict["y"], p) if json_dict["class"] == "ContiguousKeyRangeContraint": return ContiguousKeyRangeContraint() if json_dict["class"] == "FixedKeyAndMaskConstraint": if "key_list_function" in json_dict: raise NotImplementedError("key_list_function {}".format( json_dict["key_list_function"])) return FixedKeyAndMaskConstraint( key_masks_from_json(json_dict["keys_and_masks"])) if json_dict["class"] == "FixedMaskConstraint": return FixedMaskConstraint(json_dict["mask"]) if json_dict["class"] == "FixedVertexAtomsConstraint": return FixedVertexAtomsConstraint(json_dict["size"]) if json_dict["class"] == "MaxVertexAtomsConstraint": return MaxVertexAtomsConstraint(json_dict["size"]) if json_dict["class"] == "RadialPlacementFromChipConstraint": return RadialPlacementFromChipConstraint(json_dict["x"], json_dict["y"]) if json_dict["class"] == "SameChipAsConstraint": return SameChipAsConstraint(vertex_lookup(json_dict["vertex"], graph)) if json_dict["class"] == "SameAtomsAsVertexConstraint": return SameAtomsAsVertexConstraint( vertex_lookup(json_dict["vertex"], graph)) raise NotImplementedError("constraint {}".format(json_dict["class"]))
def test_vertex2(self): """Like test_vertex, but with constraints.""" c1 = ContiguousKeyRangeContraint() c2 = BoardConstraint("1.2.3.4") s1 = SimpleMachineVertex(ResourceContainer( iptags=[IPtagResource("127.0.0.1", port=None, strip_sdp=True)]), label="Vertex", constraints=[c1, c2]) self.vertex_there_and_back(s1)
def test_contiguous_key_range_constraint(self): c1 = ContiguousKeyRangeContraint() self.constraint_there_and_back(c1)
def get_outgoing_partition_constraints(self, partition): return [ContiguousKeyRangeContraint()]
def get_outgoing_partition_constraints(self, partition): constraints = ReverseIpTagMultiCastSource\ .get_outgoing_partition_constraints(self, partition) constraints.append(ContiguousKeyRangeContraint()) return constraints
def get_outgoing_partition_constraints(self, partition): constraints = super().get_outgoing_partition_constraints(partition) constraints.append(ContiguousKeyRangeContraint()) return constraints