| 
									
										
										
										
											2024-03-12 16:08:12 -05:00
										 |  |  | import unittest | 
					
						
							|  |  |  | import Generate | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TestPlayerOptions(unittest.TestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_update_weights(self): | 
					
						
							|  |  |  |         original_weights = { | 
					
						
							|  |  |  |             "scalar_1": 50, | 
					
						
							|  |  |  |             "scalar_2": 25, | 
					
						
							|  |  |  |             "list_1": ["string"], | 
					
						
							|  |  |  |             "dict_1": {"option_a": 50, "option_b": 50}, | 
					
						
							|  |  |  |             "dict_2": {"option_f": 50}, | 
					
						
							|  |  |  |             "set_1": {"option_c"} | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # test that we don't allow +merge syntax on scalar variables | 
					
						
							|  |  |  |         with self.assertRaises(BaseException): | 
					
						
							|  |  |  |             Generate.update_weights(original_weights, {"+scalar_1": 0}, "Tested", "") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         new_weights = Generate.update_weights(original_weights, {"scalar_2": 0, | 
					
						
							|  |  |  |                                                                  "+list_1": ["string_2"], | 
					
						
							|  |  |  |                                                                  "+dict_1": {"option_b": 0, "option_c": 50}, | 
					
						
							|  |  |  |                                                                  "+set_1": {"option_c", "option_d"}, | 
					
						
							|  |  |  |                                                                  "dict_2": {"option_g": 50}, | 
					
						
							|  |  |  |                                                                  "+list_2": ["string_3"]}, | 
					
						
							|  |  |  |                                               "Tested", "") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         self.assertEqual(new_weights["scalar_1"], 50) | 
					
						
							|  |  |  |         self.assertEqual(new_weights["scalar_2"], 0) | 
					
						
							|  |  |  |         self.assertEqual(new_weights["list_2"], ["string_3"]) | 
					
						
							|  |  |  |         self.assertEqual(new_weights["list_1"], ["string", "string_2"]) | 
					
						
							|  |  |  |         self.assertEqual(new_weights["dict_1"]["option_a"], 50) | 
					
						
							| 
									
										
										
										
											2024-05-23 15:03:21 +02:00
										 |  |  |         self.assertEqual(new_weights["dict_1"]["option_b"], 50) | 
					
						
							| 
									
										
										
										
											2024-03-12 16:08:12 -05:00
										 |  |  |         self.assertEqual(new_weights["dict_1"]["option_c"], 50) | 
					
						
							|  |  |  |         self.assertNotIn("option_f", new_weights["dict_2"]) | 
					
						
							|  |  |  |         self.assertEqual(new_weights["dict_2"]["option_g"], 50) | 
					
						
							|  |  |  |         self.assertEqual(len(new_weights["set_1"]), 2) | 
					
						
							|  |  |  |         self.assertIn("option_d", new_weights["set_1"]) |