コード例 #1
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
    def test_throttled_consumer(self):

        s = Source(PipedWater, 0.5) + Sink(PipedWater, 1.0)
        s.balance()
        a, b = s.subsystems
        assert_almost_equal(a.uptime, 1)
        assert_almost_equal(b.uptime, 0.5)
コード例 #2
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
    def test_full_throughput_balance(self):

        s = Source(PipedWater, 1) + Sink(PipedWater, 1)
        s.balance()
        a, b = s.subsystems
        assert_almost_equal(a.uptime, 1)
        assert_almost_equal(b.uptime, 1)
コード例 #3
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
    def test_balance_idempotence(self):

        s = Source(PipedWater, 0.5) + Sink(PipedWater, 1.0)
        s.balance()
        s.balance()

        a, b = s.subsystems
        assert_almost_equal(a.uptime, 1)
        assert_almost_equal(b.uptime, 0.5)
コード例 #4
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
    def test_missing_consumer(self):

        # Gives but doesn't need heat
        s = Source(Power, 10) + CeilingLight()
        s.balance()

        a, b = s.subsystems
        assert_almost_equal(a.uptime, 1)
        assert_almost_equal(b.uptime, 1)
コード例 #5
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
    def test_rmul(self):

        machine = Source(PipedWater, 1)
        s = 3 * machine

        assert len(s.subsystems) == 1
        assert s.gives()[PipedWater] == 3
コード例 #6
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
 def test_impute_sink(self):
     s = System(Source(PipedWater, 5)).impute()
     assert len(s) == 2
     assert isinstance(s[1], Sink)
     assert s[1].resource == PipedWater
     assert s[1].qty == 5
コード例 #7
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
 def test_index(self):
     s = Electrolyzer() + Source(PipedWater, 1)
     assert isinstance(s[0], Electrolyzer)
     assert isinstance(s[1], Source)
コード例 #8
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
    def test_system_machine_addition(self):
        machines = Electrolyzer(), Source(PipedWater, 1), Source(Power, 120)

        s = (machines[0] + machines[1]) + machines[2]
        assert s.subsystems == machines
コード例 #9
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
    def test_addition(self):
        machines = Electrolyzer(), Source(PipedWater, 1)

        s = machines[0] + machines[1]
        assert s.subsystems == machines
コード例 #10
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
 def test_source_name(self):
     e = Source(Power, 10)
     assert str(e) == "Source(Power, 10) [100.0% Uptime]"
コード例 #11
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
 def test_heavy_consumer(self):
     s = Source(Power, 1) + Sink(Power, 1e3)
     s.balance()
     print(s)
     assert_almost_equal(s[0].uptime, 1, 6)
     assert_almost_equal(s[1].uptime, 1e-3, 6)
コード例 #12
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
 def test_heavy_producer(self):
     s = Source(Power, 1e3) + Sink(Power, 1)
     s.balance()
     assert_almost_equal(s[0].uptime, 1, 6)
     assert_almost_equal(s[1].uptime, 1, 6)
コード例 #13
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
    def test_neutralize(self):

        s = System(Source(PipedWater, 0.5))
        s.balance(neutralize=PipedWater)
        assert_almost_equal(s[0].uptime, 0)
コード例 #14
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
 def test_neutralize_all(self):
     s = Source(PipedWater, 2) + Source(Oxygen, 2)
     s.balance(neutralize='all')
     assert_almost_equal(s[0].uptime, 0)
     assert_almost_equal(s[1].uptime, 0)
コード例 #15
0
ファイル: test_oni.py プロジェクト: ChrisBeaumont/oni
 def test_overlapping_gives(self):
     """Multiple subsystems with overlapping gives combine"""
     s = Source(PipedWater, 1) * 2
     assert s.gives()[PipedWater] == 2