Пример #1
0
 def test_3(self):
     bstr = "...o......,....x.....,.....x....,..o...o..."
     b = Board()
     b.set_board(bstr)
     self.assertCountEqual([(3, 0, Checker(BLACK)), (2, 3, Checker(BLACK)),
                            (6, 3, Checker(BLACK)), (4, 1, Checker(WHITE)),
                            (5, 2, Checker(WHITE))], b.get_checkers())
Пример #2
0
 def test_jump_crowning(self):
     b = Board()
     b.set_board("...,...o,....x")
     b.push(b.legal_moves()[0])
     self.assertEqual("..X.......,,,,,,,,,", b.get_board())
     self.assertEqual(Checker(WHITE, True), b.checker_at(2, 0))
     b.pop()
     self.assertEqual(",...o......,....x.....,,,,,,,", b.get_board())
     self.assertEqual(Checker(WHITE, False), b.checker_at(4, 2))
Пример #3
0
    def clean_username(self):
        ROOT_CONFIG = 'REGISTRATION_NAMES'

        checker = Checker(getattr(settings, ROOT_CONFIG, None))
        username = super(RegistrationNameControlForm, self).clean_username()

        if checker.check(username):
            return username
        else:
            raise forms.ValidationError(_("This username isn't allowed."))
Пример #4
0
    def test_allowed_and_prohibited(self):
        root = {
            'control_type': 'allowed_and_prohibited',
            'allowed': [
                'Explicit name.',
                ('re', '', 'pA+ttern'),
                ('re', 'i', 'sTrAnGe'),
            ],
            'prohibited': [
                'pAAttern',
                ('re', '', 'sT.*')
            ]
        }
        c = Checker(root)
        self.assertEqual(c.check("not allowed"), False)
        self.assertEqual(c.check("pattern"), False)  # Lower-case 'a'.

        self.assertEqual(c.check("Explicit name."), True)
        self.assertEqual(c.check("pAttern"), True)
        self.assertEqual(c.check("pAAttern"), False)
        self.assertEqual(c.check("pAAAttern"), True)

        self.assertEqual(c.check("sTrange"), False)
        self.assertEqual(c.check("strange"), True)
        self.assertEqual(c.check("STRANGE"), True)
Пример #5
0
 def update_point(self, color):
     if color == "BLACK":
         self.point['BLACK'] += 1
         self.piece_position.append(
             Checker(display_width+82, self.past_x_black+60, color))
         self.past_x_black += 60
     else:
         self.point['WHITE'] += 1
         self.piece_position.append(
             Checker(display_width+82, self.past_x_white+60, color))
         self.past_x_white += 60
Пример #6
0
 def test_promotion_pop(self):
     b = Board()
     b.set_board(",x")
     b.push(b.legal_moves()[0])
     chk = Checker(WHITE, True)
     self.assertTrue(b.move_stack[-1][-1].is_promotion)
     self.assertEqual(b.checker_at(1, 0), chk)
     b.push([Move(chk, (1, 0), (5, 4))])
     self.assertEqual(b.checker_at(5, 4), chk)
     b.pop()
     self.assertEqual(b.checker_at(1, 0), Checker(WHITE, True))
     b.pop()
     self.assertEqual(b.checker_at(0, 1), Checker(WHITE, False))
Пример #7
0
 def test_1(self):
     bstr = "x"
     b = Board()
     b.set_board(bstr)
     # https://docs.python.org/3.2/library/unittest.html#unittest.TestCase.assertCountEqual
     # tests if list have same elements
     self.assertCountEqual([(0, 0, Checker(WHITE))], b.get_checkers())
Пример #8
0
 def test_border_twice(self):
     b = Board()
     b.set_board("...X")
     cx = Checker(WHITE, True)
     b.push([Move(cx, (3, 0), (5, 2))])
     self.assertTrue(True, cx.crowned)
     b.push([Move(cx, (5, 2), (7, 0))])
     self.assertTrue(True, cx.crowned)
     b.pop()
     self.assertTrue(True, cx.crowned)
     b.pop()
     self.assertTrue(True, cx.crowned)
Пример #9
0
 def test_move_king_black_corner(self):
     b = Board()
     b.set_board(",,,,,,,,,.........O")
     b.color = BLACK
     bc = Checker(BLACK, True)
     self.assertCountEqual([
         [Move(bc, (9, 9), (8, 8))],
         [Move(bc, (9, 9), (7, 7))],
         [Move(bc, (9, 9), (6, 6))],
         [Move(bc, (9, 9), (5, 5))],
         [Move(bc, (9, 9), (4, 4))],
         [Move(bc, (9, 9), (3, 3))],
         [Move(bc, (9, 9), (2, 2))],
         [Move(bc, (9, 9), (1, 1))],
         [Move(bc, (9, 9), (0, 0))],
     ], b.legal_moves())
Пример #10
0
def run():
    # 添加项目目录到环境变量
    sys.path.append(settings.BASE_DIR)
    # 连接redis,实例化spider, parse, checker
    redis_cli = redis.Redis(**settings.REDIS_PARAM)
    spider = Spider()
    parser = Parser(spider.queue, redis_cli)
    checher = Checker(redis_cli)
    # 创建并启动线程
    thread_list = [
        Thread(target=spider.run),
        Thread(target=parser.run),
        Thread(target=checher.run)
    ]
    for thread in thread_list:
        thread.start()
Пример #11
0
    def test_disabled(self):
        c = Checker({'control_type': 'disabled'})
        self.assertEqual(c.check("Some name."), True)

        # Strange keys.
        c = Checker({'control_type': 'disabled', 'asdasd': None})
        self.assertEqual(c.check("Some name."), True)

        # Error in lists.
        c = Checker({'control_type': 'disabled', 'allowed': None})
        self.assertEqual(c.check("Some name."), True)

        # Prohibited list.
        root = {
            'control_type': 'disabled',
            'allowed': [],
            'prohibited': ["Some name."]
        }
        c = Checker(root)
        self.assertEqual(c.check("Some name."), True)
Пример #12
0
 def test_move_two_kings_white(self):
     b = Board()
     b.set_board(".......X.X")
     wc = Checker(WHITE, True)  # white, crowned checker (X)
     self.assertCountEqual([
         [Move(wc, (7, 0), (6, 1))],
         [Move(wc, (7, 0), (5, 2))],
         [Move(wc, (7, 0), (4, 3))],
         [Move(wc, (7, 0), (3, 4))],
         [Move(wc, (7, 0), (2, 5))],
         [Move(wc, (7, 0), (1, 6))],
         [Move(wc, (7, 0), (0, 7))],
         [Move(wc, (7, 0), (8, 1))],
         [Move(wc, (7, 0), (9, 2))],
         [Move(wc, (9, 0), (8, 1))],
         [Move(wc, (9, 0), (7, 2))],
         [Move(wc, (9, 0), (6, 3))],
         [Move(wc, (9, 0), (5, 4))],
         [Move(wc, (9, 0), (4, 5))],
         [Move(wc, (9, 0), (3, 6))],
         [Move(wc, (9, 0), (2, 7))],
         [Move(wc, (9, 0), (1, 8))],
         [Move(wc, (9, 0), (0, 9))],
     ], b.legal_moves())
Пример #13
0
 def test_2(self):
     bstr = ".....o"
     b = Board()
     b.set_board(bstr)
     self.assertCountEqual([(5, 0, Checker(BLACK))], b.get_checkers())
Пример #14
0
    def create_piece(self):
        for i in self.all_piec_cord[:12]:
            self.pieces.append(Checker(i[0], i[1], "WHITE"))

        for i in self.all_piec_cord[::-1][:12]:
            self.pieces.append(Checker(i[0], i[1], "BLACK"))