Example #1
0
    def test_get_not_allocated_hosts(self):
        h1 = Host(0, "n")
        h2 = Host(1, "n")
        p = Platform([h1, h2])
        h1._allocate("j1")

        assert p.get_not_allocated_hosts() == [h2]
Example #2
0
    def test_get_not_found_must_raise(self):
        h1 = Host(0, "n")
        s1 = Storage(1, "n")
        p = Platform([h1, s1])
        with pytest.raises(LookupError) as excinfo:
            p.get(2)

        assert "no resources" in str(excinfo.value)
Example #3
0
    def test_get_storage_with_host_id_must_raise(self):
        h1 = Host(0, "n")
        s1 = Storage(1, "n")
        p = Platform([h1, s1])

        with pytest.raises(LookupError) as excinfo:
            p.get_storage(0)

        assert "storage" in str(excinfo.value)
Example #4
0
 def test_state(self):
     p1 = PowerState(0, PowerStateType.SLEEP, 10, 10)
     p2 = PowerState(1, PowerStateType.COMPUTATION, 10, 100)
     p3 = PowerState(2, PowerStateType.COMPUTATION, 15, 150)
     p4 = PowerState(3, PowerStateType.SWITCHING_OFF, 50, 50)
     p5 = PowerState(4, PowerStateType.SWITCHING_ON, 75, 75)
     h1 = Host(0, "n", pstates=[p1, p3, p2, p4, p5])
     h2 = Host(1, "n")
     p = Platform([h1, h2])
     h1._switch_off()
     assert p.state == [HostState.SWITCHING_OFF, HostState.IDLE]
Example #5
0
 def monitor(self, mock_simulator):
     monitor = ConsumedEnergyMonitor(mock_simulator)
     mock_simulator.current_time = 0
     watt_on = [(100, 200), (200, 300)]
     pstates = BatsimPlatformAPI.get_resource_properties(watt_on=watt_on)
     pstates = Converters.json_to_power_states(pstates)
     hosts = [
         Host(0, "0", pstates=pstates),
         Host(1, "1", pstates=pstates),
     ]
     mock_simulator.platform = Platform(hosts)
     monitor.on_simulation_begins(mock_simulator)
     return monitor
Example #6
0
    def test_get_storage_by_id(self):
        h1 = Host(0, "n")
        s1 = Storage(1, "n")
        p = Platform([h1, s1])

        assert p.get_storage(1) == s1
Example #7
0
    def test_get_with_host(self):
        h1 = Host(0, "n")
        s1 = Storage(1, "n")
        p = Platform([h1, s1])

        assert p.get(0) == h1
Example #8
0
 def test_power_when_pstates_defined(self):
     p1 = PowerState(1, PowerStateType.COMPUTATION, 15, 100)
     p2 = PowerState(1, PowerStateType.COMPUTATION, 50, 100)
     res = [Host(0, "n", pstates=[p1]), Host(1, "n", pstates=[p2])]
     p = Platform(res)
     assert p.power == 15 + 50
Example #9
0
 def test_power_when_pstates_not_defined(self):
     res = [Host(0, "n"), Host(1, "n")]
     p = Platform(res)
     assert p.power == 0
Example #10
0
 def test_storages(self):
     res = [Host(0, "n"), Host(1, "n"), Storage(2, "n")]
     p = Platform(res)
     assert len(list(p.storages)) == 1
Example #11
0
 def test_size(self):
     res = [Host(0, "n"), Host(1, "n"), Storage(2, "n")]
     p = Platform(res)
     assert p.size == len(res)
Example #12
0
 def test_invalid_res_id_must_raise(self):
     with pytest.raises(SystemError) as excinfo:
         Platform([Host(1, "n"), Host(2, "n")])
     assert "resources id" in str(excinfo.value)
Example #13
0
 def test_empty_res_must_raise(self):
     with pytest.raises(ValueError) as excinfo:
         Platform([])
     assert "one resource" in str(excinfo.value)
Example #14
0
 def test_valid_instance(self):
     res = [Host(0, "n"), Host(1, "n"), Storage(2, "n")]
     p = Platform(res)
     assert all(h.id == i for i, h in enumerate(p.resources))