@@ -31,8 +31,8 @@ class Entity:
31
31
def my_constraints (constraint_factory : ConstraintFactory ):
32
32
return [
33
33
constraint_factory .for_each (Entity )
34
- .reward (SimpleScore .ONE , lambda entity : entity .value )
35
- .as_constraint ('package' , 'Maximize Value' ),
34
+ .reward (SimpleScore .ONE , lambda entity : entity .value )
35
+ .as_constraint ('package' , 'Maximize Value' ),
36
36
]
37
37
38
38
@@ -204,6 +204,7 @@ def test_score_manager_diff():
204
204
constraint_analyses = score_analysis .constraint_analyses
205
205
assert len (constraint_analyses ) == 1
206
206
207
+
207
208
def test_score_manager_constraint_analysis_map ():
208
209
solution_manager = SolutionManager .create (SolverFactory .create (solver_config ))
209
210
problem : Solution = Solution ([Entity ('A' , 1 ), Entity ('B' , 1 ), Entity ('C' , 1 )], [1 , 2 , 3 ])
@@ -230,24 +231,33 @@ def test_score_manager_constraint_analysis_map():
230
231
'compareTo' ,
231
232
}
232
233
234
+ ignored_java_functions_per_class = {
235
+ 'Indictment' : {'getJustification' } # deprecated
236
+ }
237
+
233
238
234
239
def test_has_all_methods ():
235
240
missing = []
236
241
for python_type , java_type in ((ScoreExplanation , JavaScoreExplanation ),
237
242
(ScoreAnalysis , JavaScoreAnalysis ),
238
243
(ConstraintAnalysis , JavaConstraintAnalysis ),
239
244
(ScoreExplanation , JavaScoreExplanation ),
240
- (ConstraintMatch , JavaConstraintMatch ),
241
- (ConstraintMatchTotal , JavaConstraintMatchTotal ),
242
245
(Indictment , JavaIndictment )):
246
+ type_name = python_type .__name__
247
+ ignored_java_functions_type = ignored_java_functions_per_class [
248
+ type_name ] if type_name in ignored_java_functions_per_class else {}
249
+
243
250
for function_name , function_impl in inspect .getmembers (java_type , inspect .isfunction ):
244
- if function_name in ignored_java_functions :
251
+ if function_name in ignored_java_functions or function_name in ignored_java_functions_type :
245
252
continue
246
253
247
254
snake_case_name = re .sub ('(.)([A-Z][a-z]+)' , r'\1_\2' , function_name )
248
255
snake_case_name = re .sub ('([a-z0-9])([A-Z])' , r'\1_\2' , snake_case_name ).lower ()
249
- snake_case_name_without_prefix = re .sub ('(.)([A-Z][a-z]+)' , r'\1_\2' , function_name [3 :] if function_name .startswith ("get" ) else function_name )
250
- snake_case_name_without_prefix = re .sub ('([a-z0-9])([A-Z])' , r'\1_\2' , snake_case_name_without_prefix ).lower ()
256
+ snake_case_name_without_prefix = re .sub ('(.)([A-Z][a-z]+)' , r'\1_\2' ,
257
+ function_name [3 :] if function_name .startswith (
258
+ "get" ) else function_name )
259
+ snake_case_name_without_prefix = re .sub ('([a-z0-9])([A-Z])' , r'\1_\2' ,
260
+ snake_case_name_without_prefix ).lower ()
251
261
if not hasattr (python_type , snake_case_name ) and not hasattr (python_type , snake_case_name_without_prefix ):
252
262
missing .append ((java_type , python_type , snake_case_name ))
253
263
0 commit comments