コード例 #1
0
    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)