Esempio n. 1
0
 def test_not_ambiguous_slight_advantage_vs_slight_disadvantage(self):
     self.assertFalse(ambiguous_best_move([
         Cp(139),
         Cp(-153),
         Cp(-328),
     ]))
     self.assertFalse(ambiguous_best_move([
         Cp(203),
         Cp(-72),
         Cp(-97),
     ]))
     self.assertFalse(ambiguous_best_move([
         Cp(-114),
         Cp(85),
         Cp(89),
     ]))
     self.assertFalse(ambiguous_best_move([
         Cp(-101),
         Cp(103),
         Cp(282),
     ]))
     self.assertFalse(ambiguous_best_move([
         Cp(53),
         Cp(-75),
         Cp(-122),
     ]))
Esempio n. 2
0
 def test_ambiguous_slight_advantages(self):
     self.assertTrue(ambiguous_best_move([
         Cp(-74),
         Cp(-116),
         Cp(-154),
     ]))
     self.assertTrue(ambiguous_best_move([
         Cp(-78),
         Cp(-154),
         Cp(-192),
     ]))
     self.assertTrue(ambiguous_best_move([
         Cp(262),
         Cp(191),
         Cp(186),
     ]))
     self.assertTrue(ambiguous_best_move([
         Cp(166),
         Cp(152),
         Cp(146),
     ]))
     self.assertTrue(ambiguous_best_move([
         Cp(72),
         Cp(25),
         Cp(8),
     ]))
Esempio n. 3
0
 def test_not_ambiguous_slight_advantage_vs_significant_disadvantage(self):
     self.assertFalse(ambiguous_best_move([
         Cp(146),
         Cp(-405),
     ]))
     self.assertFalse(ambiguous_best_move([
         Cp(149),
         Cp(-458),
         Cp(-543),
     ]))
Esempio n. 4
0
 def test_not_ambiguous_mate_vs_counter_mate(self):
     self.assertFalse(ambiguous_best_move([
         Mate(1),
         Mate(-14),
         Mate(-11),
     ]))
     self.assertFalse(ambiguous_best_move([
         Mate(-2),
         Mate(10),
         Mate(8),
     ]))
Esempio n. 5
0
 def test_not_ambiguous_equality_vs_slight_disadvantage(self):
     self.assertFalse(ambiguous_best_move([
         Cp(3),
         Cp(-131),
         Cp(-200),
     ]))
     self.assertFalse(ambiguous_best_move([
         Cp(3),
         Cp(-170),
         Cp(-371),
     ]))
     self.assertFalse(ambiguous_best_move([
         Cp(0),
         Cp(-282),
         Cp(-293),
     ]))
Esempio n. 6
0
 def test_not_ambiguous_significant_advantage_vs_slight_advantage(self):
     self.assertFalse(ambiguous_best_move([
         Cp(379),
         Cp(78),
         Cp(77),
     ]))
     self.assertFalse(ambiguous_best_move([
         Cp(365),
         Cp(110),
         Cp(95),
     ]))
     self.assertFalse(ambiguous_best_move([
         Cp(-683),
         Cp(-81),
         Cp(-65),
     ]))
Esempio n. 7
0
 def test_not_ambiguous_equality_vs_significant_disadvantage(self):
     self.assertFalse(ambiguous_best_move([
         Cp(0),
         Cp(-825),
         Cp(-1079),
     ]))
     self.assertFalse(ambiguous_best_move([
         Cp(-36),
         Cp(-485),
         Cp(-504),
     ]))
     self.assertFalse(ambiguous_best_move([
         Cp(0),
         Cp(-963),
         Mate(-12),
     ]))
Esempio n. 8
0
 def test_ambiguous_significant_advantages(self):
     self.assertTrue(ambiguous_best_move([
         Cp(767),
         Cp(758),
         Cp(177),
     ]))
     self.assertTrue(ambiguous_best_move([
         Cp(552),
         Cp(505),
         Cp(443),
     ]))
     self.assertTrue(ambiguous_best_move([
         Cp(408),
         Cp(224),
         Cp(219),
     ]))
     self.assertTrue(ambiguous_best_move([
         Cp(254),
         Cp(254),
         Cp(240),
     ]))
Esempio n. 9
0
 def test_not_ambiguous_slight_advantage_vs_equality(self):
     self.assertFalse(ambiguous_best_move([
         Cp(-132),
         Cp(-4),
         Cp(45),
     ]))
Esempio n. 10
0
 def test_ambiguous_multiple_mates(self):
     self.assertTrue(ambiguous_best_move([
         Mate(1),
         Mate(1),
     ]))
Esempio n. 11
0
 def test_ambiguous_mate_vs_significant_advantage(self):
     self.assertTrue(ambiguous_best_move([
         Mate(1),
         Cp(700),
     ]))
Esempio n. 12
0
 def test_not_ambiguous_mate_vs_moderate_advantage(self):
     self.assertFalse(ambiguous_best_move([
         Mate(1),
         Cp(304),
         Cp(206),
     ]))
 def is_ambiguous(self) -> bool:
     """ True if it's unclear whether there's a single best move from
         this position
     """
     return ambiguous_best_move(
         [move.score for move in self.candidate_moves])