コード例 #1
0
    def test_workforce(self):
        orga = Organization()
        orga.add_layer(1, size=2, efficiency_weight=1.0)
        orga.add_layer(2, size=3, efficiency_weight=1.0)
        orga.add_layer(3, size=5, efficiency_weight=1.0)

        self.assertEquals(10, orga.workforce())
コード例 #2
0
    def test_maximum_efficiency(self):
        orga = Organization()
        orga.add_layer(1, size=2, efficiency_weight=1.0)
        orga.add_layer(2, size=3, efficiency_weight=0.6)
        orga.add_layer(3, size=5, efficiency_weight=0.2)

        self.assertEquals((2*10*1.0 + 3*10*0.6 + 5*10*0.2) / 10, orga.maximum_efficiency())
コード例 #3
0
    def test_global_efficiency(self):
        orga = Organization()
        orga.add_layer(1, size=2, efficiency_weight=1.0)
        orga.add_layer(2, size=3, efficiency_weight=0.6)
        orga.add_layer(3, size=5, efficiency_weight=0.2)

        orga.layers[1].employees = [emp(25, 8.0), emp(25, 9.0)]
        orga.layers[2].employees = [emp(25, 7.0), emp(25, 2.0), emp(25, 7.0)]
        orga.layers[3].employees = [emp(25, 6.0), emp(25, 5.5), emp(25, 10.0), None, emp(25, 7.0)]

        self.assertEquals(100 * ((8.0 + 9.0) * 1.0 + (7.0 + 2.0 + 7.0) * 0.6 + (6.0 + 5.5 + 10.0 + 7.0) * 0.2) /
                                 (orga.workforce() * orga.maximum_efficiency()),
                          orga.global_efficiency())
コード例 #4
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)