def test_empty_terminals(self): eng = MagicMock() def getParams(value): if value == "gp_function_set": return {"gp1" : 2, "gp2" : 2, "gp3" : 3} return None eng.getParam = MagicMock(side_effect=getParams) self.assertRaises(AssertionError, Initializators.G2DCartesianInitializatorNode, self.genome, ga_engine=eng)
def test_empty_functions(self): eng = MagicMock() def getParams(value): if value == "gp_terminals": return ['a', 'b', 'c', 'd'] return None eng.getParam = MagicMock(side_effect=getParams) self.assertRaises(AssertionError, Initializators.G2DCartesianInitializatorNode, self.genome, ga_engine=eng)
def test_mismatch_input_with_terminals(self): eng = MagicMock() def getParams(value): if value == "gp_terminals": return ['a', 'b', 'c'] if value == "gp_function_set": return {"gp1" : 2, "gp2" : 2, "gp3" : 3} eng.getParam = MagicMock(side_effect=getParams) self.assertRaises(AssertionError, Initializators.G2DCartesianInitializatorNode, self.genome, ga_engine=eng)
class G2DCartesianInitializatorTestCase(unittest.TestCase): @classmethod def setUpClass(self): self.engine = MagicMock(); def getParams(value): if value == "gp_terminals": return ['a', 'b', 'c', 'd'] elif value == "gp_function_set": return {"gp1" : 2, "gp2" : 2, "gp3" : 3} elif value == "gp_args_mapping": return {"arg1" : "rand_randint(0,10)", "arg2" : "rand_uniform(2.0,4.2)"} self.engine.getParam = MagicMock(side_effect=getParams) def setUp(self): self.genome = G2DCartesian(2, 3, 4, 1) def tearDown(self): self.genome = None def test_nodes_creation(self): Initializators.G2DCartesianInitializatorNode(self.genome, ga_engine=self.engine) for node in self.genome: self.assertFalse(node == None) def test_input_nodes_inputs(self): Initializators.G2DCartesianInitializatorNode(self.genome, ga_engine=self.engine) for node in self.genome[self.genome.inputSlice]: self.assertTrue(len(node.inputs) == 0) def test_internal_nodes_inputs(self): Initializators.G2DCartesianInitializatorNode(self.genome, ga_engine=self.engine) for node in self.genome[self.genome.internalSlice]: self.assertTrue(len(node.inputs) in xrange(1,3)) for input in node.inputs: self.assertTrue(input.x < node.x) def test_output_nodes_inputs(self): Initializators.G2DCartesianInitializatorNode(self.genome, ga_engine=self.engine) for node in self.genome[self.genome.outputSlice]: self.assertTrue(len(node.inputs) == 1) for input in node.inputs: self.assertTrue(input.x < node.x) def test_input_nodes_data_sets(self): Initializators.G2DCartesianInitializatorNode(self.genome, ga_engine=self.engine) for node in self.genome[self.genome.inputSlice]: data = node.getData() self.assertTrue(data[0] in self.engine.getParam("gp_terminals")) def test_internal_nodes_data_sets(self): Initializators.G2DCartesianInitializatorNode(self.genome, ga_engine=self.engine) for node in self.genome[self.genome.internalSlice]: data = node.getData() self.assertTrue(data[0] in self.engine.getParam("gp_function_set")) def test_output_nodes_data_sets(self): Initializators.G2DCartesianInitializatorNode(self.genome, ga_engine=self.engine) for node in self.genome[self.genome.outputSlice]: data = node.getData() self.assertTrue(data[0] == "") def test_input_nodes_positions(self): Initializators.G2DCartesianInitializatorNode(self.genome, ga_engine=self.engine) for idx, node in enumerate(self.genome[self.genome.inputSlice]): self.assertTrue(node.x == -1) self.assertTrue(node.y == idx) def test_internal_nodes_positions(self): Initializators.G2DCartesianInitializatorNode(self.genome, ga_engine=self.engine) for idx, node in enumerate(self.genome[self.genome.internalSlice]): self.assertTrue(node.x == idx / self.genome.cols) self.assertTrue(node.y == idx % self.genome.cols) def test_output_nodes_positions(self): Initializators.G2DCartesianInitializatorNode(self.genome, ga_engine=self.engine) for idx, node in enumerate(self.genome[self.genome.outputSlice]): self.assertTrue(node.x == self.genome.rows) self.assertTrue(node.y == idx) def test_nodes_params(self): Initializators.G2DCartesianInitializatorNode(self.genome, ga_engine=self.engine) mapping = self.engine.getParam("gp_args_mapping") for node in self.genome: for key in mapping.keys(): self.assertTrue(key in node.params) self.assertTrue(type(eval(mapping[key])) == type(node.params[key])) def test_empty_functions(self): eng = MagicMock() def getParams(value): if value == "gp_terminals": return ['a', 'b', 'c', 'd'] return None eng.getParam = MagicMock(side_effect=getParams) self.assertRaises(AssertionError, Initializators.G2DCartesianInitializatorNode, self.genome, ga_engine=eng) def test_empty_terminals(self): eng = MagicMock() def getParams(value): if value == "gp_function_set": return {"gp1" : 2, "gp2" : 2, "gp3" : 3} return None eng.getParam = MagicMock(side_effect=getParams) self.assertRaises(AssertionError, Initializators.G2DCartesianInitializatorNode, self.genome, ga_engine=eng) def test_empty_mapping(self): eng = MagicMock() def getParams(value): if value == "gp_terminals": return ['a', 'b', 'c', 'd'] elif value == "gp_function_set": return {"gp1" : 2, "gp2" : 2, "gp3" : 3} return None eng.getParam = MagicMock(side_effect=getParams) self.assertRaises(AssertionError, Initializators.G2DCartesianInitializatorNode, self.genome, ga_engine=eng) def test_empty_engine(self): self.assertRaises(KeyError, Initializators.G2DCartesianInitializatorNode, self.genome) def test_mismatch_input_with_terminals(self): eng = MagicMock() def getParams(value): if value == "gp_terminals": return ['a', 'b', 'c'] if value == "gp_function_set": return {"gp1" : 2, "gp2" : 2, "gp3" : 3} eng.getParam = MagicMock(side_effect=getParams) self.assertRaises(AssertionError, Initializators.G2DCartesianInitializatorNode, self.genome, ga_engine=eng) def test_bad_genome(self): genome = G1DList() self.assertRaises(TypeError, Initializators.G2DCartesianInitializatorNode, genome)