Ejemplo n.º 1
0
 def test_ppainter_multi_from_canvas(self) -> None:
     c = Canvas.from_data(two_cs)
     c.blank_all_but([(1, 8), (2, 8), (3, 8), (1, 7), (2, 7)])
     self.assertCountEqual(PPainter.multi_from_canvas(c, (1, 8)),
                           [P('OOOX')])
     self.assertCountEqual(PPainter.multi_from_canvas(c, (2, 8)),
                           [P('OOXO'), P('OOXX')])
     self.assertCountEqual(PPainter.multi_from_canvas(
         c, (1, 7)), [P('OXOO'), P('OXOX'),
                      P('OXXO'), P('OXXX')])
     self.assertCountEqual(PPainter.multi_from_canvas(c, (4, 4)), [])
Ejemplo n.º 2
0
    def test_match_types(self) -> None:
        c = Canvas.empty()
        # Upper left corner:
        #    O O
        #    X .
        c[1, 8] = -1
        c[2, 8] = -1
        c[1, 7] = 1
        c[2, 7] = 0

        pp = P('OXOX')
        self.assertEqual(list(pp.match_types(c, (1, 8))),
                         [(A(1, 8), 'SameValue'), (A(2, 8), 'DifferentValue'),
                          (A(1, 7), 'DifferentValue'), (A(2, 7), 'Target0')])
Ejemplo n.º 3
0
    def test_get_and_set(self) -> None:
        c = Canvas.from_data(two_cs)
        self.assertEqual(c[1, 8], -1)
        self.assertEqual(c[(1, 8)], -1)
        self.assertEqual(c[A(1, 8)], -1)

        self.assertEqual(c[2, 7], +1)

        c[1, 8] = 2
        self.assertEqual(c[1, 8], 2)
        c[(1, 8)] = 3
        self.assertEqual(c[1, 8], 3)
        c[A(1, 8)] = 4
        self.assertEqual(c[1, 8], 4)
Ejemplo n.º 4
0
    def test_paint(self) -> None:
        c = Canvas.empty()

        c.paint((1, 8), +1)
        self.assertEqual(c[1, 8], +1)
        self.assertEqual(c.clarity(1, 8), 1)
        self.assertEqual(c[1, 7], 0)  # should be unchanged
        self.assertEqual(c.clarity(1, 7), 0)  # should be unchanged

        c.paint((1, 8), +1)
        self.assertEqual(c[1, 8], +1)
        self.assertEqual(c.clarity(1, 8), 2)

        c.paint((1, 8), -1)
        self.assertEqual(c[1, 8], +1)
        self.assertEqual(c.clarity(1, 8), 1)
Ejemplo n.º 5
0
    def test_ppainter(self) -> None:
        c = Canvas.empty()
        p = PPainter(1, -1, 1, -1)

        self.assertEqual(p.as_xos(), 'XOXO')
        self.assertCountEqual(p.values(), [1, -1, 1, -1])

        self.assertEqual(default_weight_scheme.pp_match_weight(c, p, (1, 8)),
                         4)

        p.paint(c, (1, 8))
        self.assertEqual(c[1, 8], 1)
        self.assertEqual(c[2, 8], -1)
        self.assertEqual(c[1, 7], 1)
        self.assertEqual(c[2, 7], -1)

        self.assertEqual(default_weight_scheme.pp_match_weight(c, p, (1, 8)),
                         20)
Ejemplo n.º 6
0
    def test_ppainter_weight(self) -> None:
        c = Canvas.empty()
        # Upper left corner:
        #    O O
        #    X .
        c[1, 8] = -1
        c.set_clarity((1, 8), 4)
        c[2, 8] = -1
        c.set_clarity((2, 8), 4)
        c[1, 7] = 1
        c.set_clarity((1, 7), 4)
        c[2, 7] = 0
        c.set_clarity((2, 7), 0)

        pp = P('OOXX')
        #print(default_weight_scheme.ppainter_weight(c, pp, (1, 8)))
        self.assertEqual(default_weight_scheme.ppainter_weight(c, pp, (1, 8)),
                         200.0)
Ejemplo n.º 7
0
 def draw_gc(self, gc: GCanvas) -> None:
     '''Updates all the squares in the GridWidget to match 'gc'.'''
     for a in gc.all_addrs():
         self.draw_square(a, gc[a], gc.clarity(a))
Ejemplo n.º 8
0
 def test_addr_to_indices(self) -> None:
     c = Canvas.from_data(two_cs)
     self.assertEqual(c.addr_to_indices(3, 7), (1, 2))
     self.assertEqual(c.addr_to_indices((3, 7)), (1, 2))
     self.assertEqual(c.addr_to_indices(A(3, 7)), (1, 2))
Ejemplo n.º 9
0
 def test_ppainter_from_canvas(self) -> None:
     c = Canvas.from_data(two_cs)
     p = PPainter.from_canvas(c, (1, 8))
     self.assertEqual(p, PPainter(-1, -1, -1, 1))