| 
									
										
										
										
											2024-03-15 15:05:14 +03:00
										 |  |  | from itertools import combinations | 
					
						
							| 
									
										
										
										
											2023-07-19 14:26:38 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-15 15:05:14 +03:00
										 |  |  | from .option_names import all_option_choices | 
					
						
							| 
									
										
										
										
											2023-10-28 00:18:33 +02:00
										 |  |  | from .. import setup_solo_multiworld, SVTestCase | 
					
						
							| 
									
										
										
										
											2024-03-15 15:05:14 +03:00
										 |  |  | from ..assertion.world_assert import WorldAssertMixin | 
					
						
							|  |  |  | from ... import options | 
					
						
							| 
									
										
										
										
											2023-07-19 14:26:38 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-15 15:05:14 +03:00
										 |  |  | class TestGenerateDynamicOptions(WorldAssertMixin, SVTestCase): | 
					
						
							|  |  |  |     def test_given_option_pair_when_generate_then_basic_checks(self): | 
					
						
							|  |  |  |         if self.skip_long_tests: | 
					
						
							|  |  |  |             return | 
					
						
							| 
									
										
										
										
											2023-07-19 14:26:38 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-15 15:05:14 +03:00
										 |  |  |         for (option1, option1_choice), (option2, option2_choice) in combinations(all_option_choices, 2): | 
					
						
							|  |  |  |             if option1 is option2: | 
					
						
							|  |  |  |                 continue | 
					
						
							| 
									
										
										
										
											2023-07-19 14:26:38 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-15 15:05:14 +03:00
										 |  |  |             world_options = { | 
					
						
							|  |  |  |                 option1: option1_choice, | 
					
						
							|  |  |  |                 option2: option2_choice | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2023-07-19 14:26:38 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-15 15:05:14 +03:00
										 |  |  |             with self.solo_world_sub_test(f"{option1.internal_name}: {option1_choice}, {option2.internal_name}: {option2_choice}", | 
					
						
							|  |  |  |                                           world_options, | 
					
						
							|  |  |  |                                           world_caching=False) \ | 
					
						
							|  |  |  |                     as (multiworld, _): | 
					
						
							|  |  |  |                 self.assert_basic_checks(multiworld) | 
					
						
							| 
									
										
										
										
											2023-07-19 14:26:38 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-15 15:05:14 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | class TestDynamicOptionDebug(WorldAssertMixin, SVTestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_option_pair_debug(self): | 
					
						
							|  |  |  |         option_dict = { | 
					
						
							|  |  |  |             options.SpecialOrderLocations.internal_name: options.SpecialOrderLocations.option_board_qi, | 
					
						
							|  |  |  |             options.Monstersanity.internal_name: options.Monstersanity.option_one_per_monster, | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         for i in range(1): | 
					
						
							|  |  |  |             # seed = int(random() * pow(10, 18) - 1) | 
					
						
							|  |  |  |             seed = 823942126251776128 | 
					
						
							|  |  |  |             with self.subTest(f"Seed: {seed}"): | 
					
						
							|  |  |  |                 print(f"Seed: {seed}") | 
					
						
							|  |  |  |                 multiworld = setup_solo_multiworld(option_dict, seed) | 
					
						
							|  |  |  |                 self.assert_basic_checks(multiworld) |