Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 6
0
 def test_invalid_steps(self):
     with self.assertRaises(ValueError):
         GameOfLife(set()).advance(-1)
Ejemplo n.º 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))
Ejemplo n.º 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()
Ejemplo n.º 9
0
 def test_simplest(self):
     self.assertEqual(set(), GameOfLife({(1, 1)}).advance(1))
Ejemplo n.º 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))
Ejemplo n.º 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))
Ejemplo n.º 12
0
 def test_toad(self):
     self.assertEqual(patterns.TOAD_P2,
                      GameOfLife(patterns.TOAD_P1).advance(1))
Ejemplo n.º 13
0
 def test_blinker(self):
     self.assertEqual(patterns.BLINKER_P2,
                      GameOfLife(patterns.BLINKER_P1).advance(1))
Ejemplo n.º 14
0
 def test_two_cells(self):
     self.assertEqual(set(), GameOfLife({(1, 1), (1, 2)}).advance(1))
Ejemplo n.º 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()
Ejemplo n.º 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))
Ejemplo n.º 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))