Пример #1
0
 def test_player_is_ready(self):
     from paigow.pgset import PGSet
     pid = PGPlayerInDeal.create(self.game, self.player, 0)
     pid.set_dealt_sets((self.set1, self.set2, self.set3))  # original sets
     set1new = PGSet.create_with_tile_names(
         ("teen", "high eight", "high ten", "day"))
     set2new = PGSet.create_with_tile_names(
         ("mixed seven", "teen", "mixed five", "harmony four"))
     set3new = PGSet.create_with_tile_names(
         ("gee joon", "low ten", "mixed eight", "eleven"))
     pid.player_is_ready(
         set1new.tile_chars(), set2new.tile_chars(),
         set3new.tile_chars())  # original sets with tiles moved
     self.assertEqual(pid.set1, set1new.tile_chars())
     self.assertEqual(pid.set2, set2new.tile_chars())
     self.assertEqual(pid.set3, set3new.tile_chars())
     pid.player_is_ready(
         set2new.tile_chars(), set3new.tile_chars(),
         set1new.tile_chars())  # re-ordered sets with tiles moved
     self.assertEqual(pid.set1, set2new.tile_chars())
     self.assertEqual(pid.set2, set3new.tile_chars())
     self.assertEqual(pid.set3, set1new.tile_chars())
     self.assertRaises(
         ValueError, pid.player_is_ready, set2new.tile_chars(),
         set3new.tile_chars(), self.set4.tile_chars()
     )  # re-ordered sets with tiles moved, one bad # run the test when invoked as a test (this is boilerplate
Пример #2
0
 def test_x321_set_ordering( self ):
   set1 = PGSet.create_with_tile_names( ( "low ten", "mixed nine", "harmony four", "low four" ) )
   set2 = PGSet.create_with_tile_names( ( "low six", "low six", "low ten", "high seven" ) )
   self.assertFalse( first_set_is_better( set1, set2 ) )
   
   set1 = PGSet.create_with_tile_names( ( "eleven", "mixed five", "high eight", "high seven" ) )
   set2 = PGSet.create_with_tile_names( ( "low ten", "mixed nine", "high ten", "mixed five" ) )
   self.assertFalse( first_set_is_better( set1, set2 ) )
Пример #3
0
 def setUp( self ):
   from paigow.pgset import PGSet
   self.player = PGPlayer.create( "pidTest", "*****@*****.**", "xxx" )
   self.player.save()
   self.game = PGGame.create( "test" )
   self.game.save()
   self.set1 = PGSet.create_with_tile_names( ( "teen", "high ten", "day", "high eight" ) )
   self.set2 = PGSet.create_with_tile_names( ( "mixed seven", "mixed five", "harmony four", "teen" ) )
   self.set3 = PGSet.create_with_tile_names( ( "gee joon", "low ten", "mixed eight", "eleven" ) )
   self.set4 = PGSet.create_with_tile_names( ( "gee joon", "low ten", "mixed eight", "high ten" ) )
Пример #4
0
    def test_x321_set_ordering(self):
        set1 = PGSet.create_with_tile_names(
            ("low ten", "mixed nine", "harmony four", "low four"))
        set2 = PGSet.create_with_tile_names(
            ("low six", "low six", "low ten", "high seven"))
        self.assertFalse(first_set_is_better(set1, set2))

        set1 = PGSet.create_with_tile_names(
            ("eleven", "mixed five", "high eight", "high seven"))
        set2 = PGSet.create_with_tile_names(
            ("low ten", "mixed nine", "high ten", "mixed five"))
        self.assertFalse(first_set_is_better(set1, set2))
Пример #5
0
 def setUp(self):
     from paigow.pgset import PGSet
     self.player = PGPlayer.create("pidTest", "*****@*****.**", "xxx")
     self.player.save()
     self.game = PGGame.create("test")
     self.game.save()
     self.set1 = PGSet.create_with_tile_names(
         ("teen", "high ten", "day", "high eight"))
     self.set2 = PGSet.create_with_tile_names(
         ("mixed seven", "mixed five", "harmony four", "teen"))
     self.set3 = PGSet.create_with_tile_names(
         ("gee joon", "low ten", "mixed eight", "eleven"))
     self.set4 = PGSet.create_with_tile_names(
         ("gee joon", "low ten", "mixed eight", "high ten"))
Пример #6
0
 def special_ordering_for_high_pair( self, teen_or_day ):
   # test reordering to get pair
   set = PGSet.create_with_tile_names( ( teen_or_day, "eleven", "high eight", teen_or_day ) )
   self.assertEqual( ordering_for_special_hands( set ), 1 )
   
   # test no reordering to get pair
   set = PGSet.create_with_tile_names( ( "eleven", teen_or_day, "high eight", teen_or_day ) )
   self.assertEqual( ordering_for_special_hands( set ), 1 )
   
   # test no reorder to split pair
   set = PGSet.create_with_tile_names( ( "mixed nine", teen_or_day, "high eight", teen_or_day ) )
   self.assertEqual( ordering_for_special_hands( set ), 1 )
   
   # test reorder to split pair
   set = PGSet.create_with_tile_names( ( "mixed nine", "high eight", teen_or_day, teen_or_day ) )
   self.assertEqual( ordering_for_special_hands( set ), 2 )
Пример #7
0
 def test_player_is_ready( self ):
   from paigow.pgset import PGSet
   pid = PGPlayerInDeal.create( self.game, self.player, 0 )
   pid.set_dealt_sets( ( self.set1, self.set2, self.set3 ) )    # original sets
   set1new = PGSet.create_with_tile_names( ( "teen", "high eight", "high ten", "day" ) )
   set2new = PGSet.create_with_tile_names( ( "mixed seven", "teen", "mixed five", "harmony four" ) )
   set3new = PGSet.create_with_tile_names( ( "gee joon", "low ten", "mixed eight", "eleven" ) )
   pid.player_is_ready( set1new.tile_chars(), set2new.tile_chars(), set3new.tile_chars() )    # original sets with tiles moved
   self.assertEqual( pid.set1, set1new.tile_chars() )
   self.assertEqual( pid.set2, set2new.tile_chars() )
   self.assertEqual( pid.set3, set3new.tile_chars() )
   pid.player_is_ready( set2new.tile_chars(), set3new.tile_chars(), set1new.tile_chars() )    # re-ordered sets with tiles moved
   self.assertEqual( pid.set1, set2new.tile_chars() )
   self.assertEqual( pid.set2, set3new.tile_chars() )
   self.assertEqual( pid.set3, set1new.tile_chars() )
   self.assertRaises( ValueError, pid.player_is_ready, set2new.tile_chars(), set3new.tile_chars(), self.set4.tile_chars() )    # re-ordered sets with tiles moved, one bad # run the test when invoked as a test (this is boilerplate
Пример #8
0
    def test_special_ordering_for_other_pairs(self):
        # test reorder sevens to split pair
        set = PGSet.create_with_tile_names(
            ("mixed seven", "mixed seven", "teen", "day"))
        self.assertEqual(ordering_for_special_hands(set), 2)

        # test no reorder sevens to split pair
        set = PGSet.create_with_tile_names(
            ("mixed seven", "teen", "mixed seven", "day"))
        self.assertEqual(ordering_for_special_hands(set), 1)

        # test reorder eights to make pair
        set = PGSet.create_with_tile_names(
            ("mixed eight", "low ten", "mixed eight", "day"))
        self.assertEqual(ordering_for_special_hands(set), 2)

        # test no reorder eights to make pair
        set = PGSet.create_with_tile_names(
            ("low ten", "day", "mixed eight", "mixed eight"))
        self.assertEqual(ordering_for_special_hands(set), 1)

        # test reorder nines to make pair
        set = PGSet.create_with_tile_names(
            ("low ten", "day", "mixed nine", "mixed nine"))
        self.assertEqual(ordering_for_special_hands(set), 2)

        # test geen joon splitting and not
        set = PGSet.create_with_tile_names(
            ("gee joon", "gee joon", "long six", "low six"))
        self.assertEqual(ordering_for_special_hands(set), 2)
        set = PGSet.create_with_tile_names(
            ("gee joon", "gee joon", "long six", "mixed seven"))
        self.assertEqual(ordering_for_special_hands(set), 1)
Пример #9
0
 def test_special_ordering_for_other_pairs( self ):
   # test reorder sevens to split pair
   set = PGSet.create_with_tile_names( ( "mixed seven", "mixed seven", "teen", "day" ) )
   self.assertEqual( ordering_for_special_hands( set ), 2 )
   
   # test no reorder sevens to split pair
   set = PGSet.create_with_tile_names( ( "mixed seven", "teen", "mixed seven", "day" ) )
   self.assertEqual( ordering_for_special_hands( set ), 1 )
   
   # test reorder eights to make pair
   set = PGSet.create_with_tile_names( ( "mixed eight", "low ten", "mixed eight", "day" ) )
   self.assertEqual( ordering_for_special_hands( set ), 2 )
   
   # test no reorder eights to make pair
   set = PGSet.create_with_tile_names( ( "low ten", "day", "mixed eight", "mixed eight" ) )
   self.assertEqual( ordering_for_special_hands( set ), 1 )
   
   # test reorder nines to make pair
   set = PGSet.create_with_tile_names( ( "low ten", "day", "mixed nine", "mixed nine" ) )
   self.assertEqual( ordering_for_special_hands( set ), 2 )
   
   # test geen joon splitting and not
   set = PGSet.create_with_tile_names( ( "gee joon", "gee joon", "long six", "low six" ) )
   self.assertEqual( ordering_for_special_hands( set ), 2 )
   set = PGSet.create_with_tile_names( ( "gee joon", "gee joon", "long six", "mixed seven" ) )
   self.assertEqual( ordering_for_special_hands( set ), 1 )
Пример #10
0
    def special_ordering_for_high_pair(self, teen_or_day):
        # test reordering to get pair
        set = PGSet.create_with_tile_names(
            (teen_or_day, "eleven", "high eight", teen_or_day))
        self.assertEqual(ordering_for_special_hands(set), 1)

        # test no reordering to get pair
        set = PGSet.create_with_tile_names(
            ("eleven", teen_or_day, "high eight", teen_or_day))
        self.assertEqual(ordering_for_special_hands(set), 1)

        # test no reorder to split pair
        set = PGSet.create_with_tile_names(
            ("mixed nine", teen_or_day, "high eight", teen_or_day))
        self.assertEqual(ordering_for_special_hands(set), 1)

        # test reorder to split pair
        set = PGSet.create_with_tile_names(
            ("mixed nine", "high eight", teen_or_day, teen_or_day))
        self.assertEqual(ordering_for_special_hands(set), 2)
Пример #11
0
 def test_auto_set( self ):
   #PGStrategyLogging.logging = True
   set = PGSet.create_with_tile_names( ( "day", "low ten", "mixed five", "eleven" ) )
   self.assertEqual( auto_set_numerical( set ), 2 )
   set = PGSet.create_with_tile_names( ( "low four", "low ten", "eleven", "low six" ) )
   self.assertEqual( auto_set_numerical( set ), 2 )
   set = PGSet.create_with_tile_names( ( "teen", "low six", "harmony four", "long six" ) )
   self.assertEqual( auto_set_numerical( set ), 1 )
   set = PGSet.create_with_tile_names( ( "low four", "mixed nine", "high eight", "mixed eight" ) )
   self.assertEqual( auto_set_numerical( set ), 1 )
   set = PGSet.create_with_tile_names( ( "teen", "low ten", "eleven", "mixed nine" ) )
   self.assertEqual( auto_set_numerical( set ), 3 )
   set = PGSet.create_with_tile_names( ( "low ten", "mixed nine", "day", "high ten" ) )
   self.assertEqual( auto_set_numerical( set ), 3 )
Пример #12
0
 def test_auto_set(self):
     #PGStrategyLogging.logging = True
     set = PGSet.create_with_tile_names(
         ("day", "low ten", "mixed five", "eleven"))
     self.assertEqual(auto_set_numerical(set), 2)
     set = PGSet.create_with_tile_names(
         ("low four", "low ten", "eleven", "low six"))
     self.assertEqual(auto_set_numerical(set), 2)
     set = PGSet.create_with_tile_names(
         ("teen", "low six", "harmony four", "long six"))
     self.assertEqual(auto_set_numerical(set), 1)
     set = PGSet.create_with_tile_names(
         ("low four", "mixed nine", "high eight", "mixed eight"))
     self.assertEqual(auto_set_numerical(set), 1)
     set = PGSet.create_with_tile_names(
         ("teen", "low ten", "eleven", "mixed nine"))
     self.assertEqual(auto_set_numerical(set), 3)
     set = PGSet.create_with_tile_names(
         ("low ten", "mixed nine", "day", "high ten"))
     self.assertEqual(auto_set_numerical(set), 3)