42 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import unittest
							 | 
						||
| 
								 | 
							
								from .test_base import Sc2TestBase
							 | 
						||
| 
								 | 
							
								from .. import Regions
							 | 
						||
| 
								 | 
							
								from .. import Options, MissionTables
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TestGridsizes(unittest.TestCase):
							 | 
						||
| 
								 | 
							
								    def test_grid_sizes_meet_specs(self):
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((1, 2, 0), Regions.get_grid_dimensions(2))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((1, 3, 0), Regions.get_grid_dimensions(3))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((2, 2, 0), Regions.get_grid_dimensions(4))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((2, 3, 1), Regions.get_grid_dimensions(5))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((2, 4, 1), Regions.get_grid_dimensions(7))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((2, 4, 0), Regions.get_grid_dimensions(8))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((3, 3, 0), Regions.get_grid_dimensions(9))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((2, 5, 0), Regions.get_grid_dimensions(10))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((3, 4, 1), Regions.get_grid_dimensions(11))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((3, 4, 0), Regions.get_grid_dimensions(12))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((3, 5, 0), Regions.get_grid_dimensions(15))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((4, 4, 0), Regions.get_grid_dimensions(16))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((4, 6, 0), Regions.get_grid_dimensions(24))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((5, 5, 0), Regions.get_grid_dimensions(25))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((5, 6, 1), Regions.get_grid_dimensions(29))
							 | 
						||
| 
								 | 
							
								        self.assertTupleEqual((5, 7, 2), Regions.get_grid_dimensions(33))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TestGridGeneration(Sc2TestBase):
							 | 
						||
| 
								 | 
							
								    options = {
							 | 
						||
| 
								 | 
							
								        "mission_order": Options.MissionOrder.option_grid,
							 | 
						||
| 
								 | 
							
								        "excluded_missions": [MissionTables.SC2Mission.ZERO_HOUR.mission_name,],
							 | 
						||
| 
								 | 
							
								        "enable_hots_missions": False,
							 | 
						||
| 
								 | 
							
								        "enable_prophecy_missions": True,
							 | 
						||
| 
								 | 
							
								        "enable_lotv_prologue_missions": False,
							 | 
						||
| 
								 | 
							
								        "enable_lotv_missions": False,
							 | 
						||
| 
								 | 
							
								        "enable_epilogue_missions": False,
							 | 
						||
| 
								 | 
							
								        "enable_nco_missions": False
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_size_matches_exclusions(self):
							 | 
						||
| 
								 | 
							
								        self.assertNotIn(MissionTables.SC2Mission.ZERO_HOUR.mission_name, self.multiworld.regions)
							 | 
						||
| 
								 | 
							
								        # WoL has 29 missions. -1 for Zero Hour being excluded, +1 for the automatically-added menu location
							 | 
						||
| 
								 | 
							
								        self.assertEqual(len(self.multiworld.regions), 29)
							 |