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)
Exemple #2
0
    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()]
Exemple #3
0
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"]))
Exemple #4
0
 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)
Exemple #5
0
 def test_contiguous_key_range_constraint(self):
     c1 = ContiguousKeyRangeContraint()
     self.constraint_there_and_back(c1)
 def get_outgoing_partition_constraints(self, partition):
     return [ContiguousKeyRangeContraint()]
Exemple #7
0
 def get_outgoing_partition_constraints(self, partition):
     constraints = ReverseIpTagMultiCastSource\
         .get_outgoing_partition_constraints(self, partition)
     constraints.append(ContiguousKeyRangeContraint())
     return constraints
Exemple #8
0
 def get_outgoing_partition_constraints(self, partition):
     constraints = super().get_outgoing_partition_constraints(partition)
     constraints.append(ContiguousKeyRangeContraint())
     return constraints