def test_promote(self): hypothesis = MockHypothesis() orga = Organization() orga.set_strategies(hypothesis=hypothesis, strategy=BestStrategy()) orga.add_layer(1, size=1, efficiency_weight=1.0) orga.add_layer(2, size=3, efficiency_weight=1.0) best_employee = emp(38, 7.5) worst_employee = emp(25, 3.0) average_employee = emp(49, 6.3) # layer 1 has a vacancy orga.layers[2].employees = [worst_employee, best_employee, average_employee] orga.promote(origin=orga.layers[2], destination=orga.layers[1]) self.assertEquals([best_employee], orga.layers[1].employees) self.assertEquals([worst_employee, None, average_employee], orga.layers[2].employees) self.assertTrue(hypothesis.called) self.assertEquals(7.5, orga.layers[1].employees[0].competence)