Beispiel #1
0
    def test_iteration_count(self):
        g = GameOfLife(set())

        g.advance(0)
        self.assertEqual(0, g.iteration)

        g.advance(1)
        self.assertEqual(1, g.iteration)

        g.advance(10)
        self.assertEqual(11, g.iteration)

        g.advance(100)
        self.assertEqual(111, g.iteration)
Beispiel #2
0
    def test_iteration_count(self):
        g = GameOfLife(set())

        g.advance(0)
        self.assertEqual(0, g.iteration)

        g.advance(1)
        self.assertEqual(1, g.iteration)

        g.advance(10)
        self.assertEqual(11, g.iteration)

        g.advance(100)
        self.assertEqual(111, g.iteration)
Beispiel #3
0
 def test_iterable(self):
     """Check that the gol is an infinitely iterable object
     (however cut to 100 iterations because we don't have infinite time)
     """
     g = GameOfLife(patterns.BLOCK)
     iterations = 0
     for state in itertools.islice(g, 100):
         iterations += 1
         self.assertEqual(patterns.BLOCK, state)
         self.assertEqual(iterations, g.iteration)
     self.assertEqual(100, iterations)
Beispiel #4
0
 def test_beehive(self):
     # a beehive is a still life
     g = GameOfLife(patterns.BEEHIVE)
     for i in range(100):
         self.assertEqual(patterns.BEEHIVE, g.advance(i))
Beispiel #5
0
 def test_block(self):
     # a block is a still life
     g = GameOfLife(patterns.BLOCK)
     for i in range(100):
         self.assertEqual(patterns.BLOCK, g.advance(i))
Beispiel #6
0
 def test_invalid_steps(self):
     with self.assertRaises(ValueError):
         GameOfLife(set()).advance(-1)
Beispiel #7
0
 def test_alternative_tick(self):
     """Test that we can switch to alternative tick functions"""
     g = GameOfLife(patterns.BEEHIVE, life_function=life_alternative)
     for i in range(10):
         self.assertEqual(patterns.BEEHIVE, g.advance(i))
Beispiel #8
0
 def test_current(self):
     g = GameOfLife(patterns.BLINKER_P1)
     ptns = [patterns.BLINKER_P1, patterns.BLINKER_P2]
     for i in range(100):
         self.assertEqual(ptns[i % len(ptns)], g.current())
         g.advance()
Beispiel #9
0
 def test_simplest(self):
     self.assertEqual(set(), GameOfLife({(1, 1)}).advance(1))
Beispiel #10
0
 def test_beehive(self):
     # a beehive is a still life
     g = GameOfLife(patterns.BEEHIVE)
     for i in range(100):
         self.assertEqual(patterns.BEEHIVE, g.advance(i))
Beispiel #11
0
 def test_block(self):
     # a block is a still life
     g = GameOfLife(patterns.BLOCK)
     for i in range(100):
         self.assertEqual(patterns.BLOCK, g.advance(i))
Beispiel #12
0
 def test_toad(self):
     self.assertEqual(patterns.TOAD_P2,
                      GameOfLife(patterns.TOAD_P1).advance(1))
Beispiel #13
0
 def test_blinker(self):
     self.assertEqual(patterns.BLINKER_P2,
                      GameOfLife(patterns.BLINKER_P1).advance(1))
Beispiel #14
0
 def test_two_cells(self):
     self.assertEqual(set(), GameOfLife({(1, 1), (1, 2)}).advance(1))
Beispiel #15
0
 def test_current(self):
     g = GameOfLife(patterns.BLINKER_P1)
     ptns = [patterns.BLINKER_P1, patterns.BLINKER_P2]
     for i in range(100):
         self.assertEqual(ptns[i % len(ptns)], g.current())
         g.advance()
Beispiel #16
0
 def test_alternative_tick(self):
     """Test that we can switch to alternative tick functions"""
     g = GameOfLife(patterns.BEEHIVE, life_function=life_alternative)
     for i in range(10):
         self.assertEqual(patterns.BEEHIVE, g.advance(i))
Beispiel #17
0
 def test_empty(self):
     self.assertEqual(set(), GameOfLife(set()).advance(1))
     self.assertEqual(set(), GameOfLife(set()).advance(10))
     self.assertEqual(set(), GameOfLife(set()).advance(100))
     self.assertEqual(set(), GameOfLife(set()).advance(1000))