Example #1
0
    def mate(self, program):
        childA = Node.copy(self.root)
        childB = Node.copy(program.root)

        nodeA = random.choice(Node.traverseInOrder(childA))
        nodeB = random.choice(Node.traverseInOrder(childB))

        childA = Node.replace(childA, nodeA, nodeB)
        childB = Node.replace(childB, nodeB, nodeA)

        return [Program(childA), Program(childB)]
Example #2
0
  def mate(self, program):
    childA = Node.copy(self.root)
    childB = Node.copy(program.root)

    nodeA = random.choice(Node.traverseInOrder(childA))
    nodeB = random.choice(Node.traverseInOrder(childB))

    childA = Node.replace(childA, nodeA, nodeB)
    childB = Node.replace(childB, nodeB, nodeA)

    return [Program(childA), Program(childB)]
Example #3
0
    def testReplaceRoot(self):
        node = Node("1")
        node.left = Node("2")
        node.right = Node("3")
        node.left.left = Node("4")

        value = Node("5")
        node = Node.replace(node, node, value)

        self.assertEqual(node.value, "5")
        self.assertIsNone(node.left)
        self.assertIsNone(node.right)
Example #4
0
  def testReplaceRoot(self):
    node = Node("1")
    node.left = Node("2")
    node.right = Node("3")
    node.left.left = Node("4")

    value = Node("5")
    node = Node.replace(node, node, value)

    self.assertEqual(node.value, "5")
    self.assertIsNone(node.left)
    self.assertIsNone(node.right)