4 class TestClock < Test::Unit::TestCase
24 clock = Clock.new(2, 0, nil, FakeTimer)
25 clock.observe(:timer) {|timer|}
26 clock.observe(:elapsed) { elapsed = true }
33 8.times { clock.tick }
39 assert_equal({ :main => 1 }, timer)
42 9.times { clock.tick }
55 # 10 seconds main time, 1 second increment
56 clock = Clock.new(10, 1, nil, FakeTimer)
57 clock.observe(:timer) {|timer|}
58 clock.observe(:elapsed) { elapsed = true }
61 80.times { clock.tick }
63 assert_equal({:main => 2}, timer)
68 assert_equal({:main => 3}, timer)
71 15.times { clock.tick }
73 assert_equal({:main => 2}, timer)
76 14.times { clock.tick }
78 assert_equal({:main => 1}, timer)
90 # 10 seconds main time, 1 second byoyomi, 2 periods
91 clock = Clock.new(10, 0, Clock::ByoYomi.new(1, 2), FakeTimer)
92 clock.observe(:timer) {|timer|}
93 clock.observe(:elapsed) { elapsed = true }
96 80.times { clock.tick }
98 assert_equal({:main => 2}, timer)
100 25.times { clock.tick }
102 assert_equal({:byoyomi => Clock::ByoYomi.new(1, 2)}, timer)
104 10.times { clock.tick }
106 assert_equal({:byoyomi => Clock::ByoYomi.new(1, 1) }, timer)
108 5.times { clock.tick }