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
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 ) )
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" ) )
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))
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"))
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 )
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
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)
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 )
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)
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 )
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)