Skip to content

Commit d0a5811

Browse files
feat: Support custom indictments and fully implement the ScoreExplanation and ScoreAnalysis API (#38)
- Choose to use properties for the ScoreExplanation and ScoreAnalysis API, to make its usage more Pythonic (as `a.b.c` is more Pythonic then `a.get_b().get_c()` - Include missing methods in the AssertionError for the API check test
1 parent ba56c9a commit d0a5811

File tree

8 files changed

+736
-268
lines changed

8 files changed

+736
-268
lines changed

tests/test_collectors.py

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,15 @@ def define_constraints(constraint_factory: ConstraintFactory):
6060
entity_a.value = value_1
6161
entity_b.value = value_1
6262

63-
assert score_manager.explain(problem).get_score() == SimpleScore.of(1)
63+
assert score_manager.explain(problem).score == SimpleScore.of(1)
6464

6565
entity_a.value = value_2
6666

67-
assert score_manager.explain(problem).get_score() == SimpleScore.of(1)
67+
assert score_manager.explain(problem).score == SimpleScore.of(1)
6868

6969
entity_b.value = value_2
7070

71-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
71+
assert score_manager.explain(problem).score == SimpleScore.of(2)
7272

7373

7474
def test_max():
@@ -93,15 +93,15 @@ def define_constraints(constraint_factory: ConstraintFactory):
9393
entity_a.value = value_1
9494
entity_b.value = value_1
9595

96-
assert score_manager.explain(problem).get_score() == SimpleScore.of(1)
96+
assert score_manager.explain(problem).score == SimpleScore.of(1)
9797

9898
entity_a.value = value_2
9999

100-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
100+
assert score_manager.explain(problem).score == SimpleScore.of(2)
101101

102102
entity_b.value = value_2
103103

104-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
104+
assert score_manager.explain(problem).score == SimpleScore.of(2)
105105

106106

107107
def test_sum():
@@ -126,15 +126,15 @@ def define_constraints(constraint_factory: ConstraintFactory):
126126
entity_a.value = value_1
127127
entity_b.value = value_1
128128

129-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
129+
assert score_manager.explain(problem).score == SimpleScore.of(2)
130130

131131
entity_a.value = value_2
132132

133-
assert score_manager.explain(problem).get_score() == SimpleScore.of(3)
133+
assert score_manager.explain(problem).score == SimpleScore.of(3)
134134

135135
entity_b.value = value_2
136136

137-
assert score_manager.explain(problem).get_score() == SimpleScore.of(4)
137+
assert score_manager.explain(problem).score == SimpleScore.of(4)
138138

139139

140140
def test_average():
@@ -159,15 +159,15 @@ def define_constraints(constraint_factory: ConstraintFactory):
159159
entity_a.value = value_1
160160
entity_b.value = value_1
161161

162-
assert score_manager.explain(problem).get_score() == SimpleScore.of(10)
162+
assert score_manager.explain(problem).score == SimpleScore.of(10)
163163

164164
entity_a.value = value_2
165165

166-
assert score_manager.explain(problem).get_score() == SimpleScore.of(15)
166+
assert score_manager.explain(problem).score == SimpleScore.of(15)
167167

168168
entity_b.value = value_2
169169

170-
assert score_manager.explain(problem).get_score() == SimpleScore.of(20)
170+
assert score_manager.explain(problem).score == SimpleScore.of(20)
171171

172172

173173
def test_count():
@@ -195,7 +195,7 @@ def define_constraints(constraint_factory: ConstraintFactory):
195195
entity_a2.value = value_1
196196
entity_b.value = value_1
197197

198-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
198+
assert score_manager.explain(problem).score == SimpleScore.of(2)
199199

200200

201201
def test_count_distinct():
@@ -220,15 +220,15 @@ def define_constraints(constraint_factory: ConstraintFactory):
220220
entity_a.value = value_1
221221
entity_b.value = value_1
222222

223-
assert score_manager.explain(problem).get_score() == SimpleScore.of(1)
223+
assert score_manager.explain(problem).score == SimpleScore.of(1)
224224

225225
entity_b.value = value_2
226226

227-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
227+
assert score_manager.explain(problem).score == SimpleScore.of(2)
228228

229229
entity_a.value = value_2
230230

231-
assert score_manager.explain(problem).get_score() == SimpleScore.of(1)
231+
assert score_manager.explain(problem).score == SimpleScore.of(1)
232232

233233

234234
def test_to_consecutive_sequences():
@@ -271,23 +271,23 @@ def define_constraints(constraint_factory: ConstraintFactory):
271271
entity_d.value = value_7
272272
entity_e.value = value_9
273273

274-
assert score_manager.explain(problem).get_score().score() == 5
274+
assert score_manager.explain(problem).score.score() == 5
275275

276276
entity_a.value = value_1
277277
entity_b.value = value_2
278278
entity_c.value = value_3
279279
entity_d.value = value_4
280280
entity_e.value = value_5
281281

282-
assert score_manager.explain(problem).get_score().score() == 25
282+
assert score_manager.explain(problem).score.score() == 25
283283

284284
entity_a.value = value_1
285285
entity_b.value = value_2
286286
entity_c.value = value_3
287287
entity_d.value = value_5
288288
entity_e.value = value_6
289289

290-
assert score_manager.explain(problem).get_score().score() == 13
290+
assert score_manager.explain(problem).score.score() == 13
291291

292292

293293
def test_to_list():
@@ -312,15 +312,15 @@ def define_constraints(constraint_factory: ConstraintFactory):
312312
entity_a.value = value_1
313313
entity_b.value = value_1
314314

315-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
315+
assert score_manager.explain(problem).score == SimpleScore.of(2)
316316

317317
entity_b.value = value_2
318318

319-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
319+
assert score_manager.explain(problem).score == SimpleScore.of(2)
320320

321321
entity_a.value = value_2
322322

323-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
323+
assert score_manager.explain(problem).score == SimpleScore.of(2)
324324

325325

326326
def test_to_set():
@@ -345,15 +345,15 @@ def define_constraints(constraint_factory: ConstraintFactory):
345345
entity_a.value = value_1
346346
entity_b.value = value_1
347347

348-
assert score_manager.explain(problem).get_score() == SimpleScore.of(1)
348+
assert score_manager.explain(problem).score == SimpleScore.of(1)
349349

350350
entity_b.value = value_2
351351

352-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
352+
assert score_manager.explain(problem).score == SimpleScore.of(2)
353353

354354
entity_a.value = value_2
355355

356-
assert score_manager.explain(problem).get_score() == SimpleScore.of(1)
356+
assert score_manager.explain(problem).score == SimpleScore.of(1)
357357

358358

359359
def test_to_map():
@@ -379,15 +379,15 @@ def define_constraints(constraint_factory: ConstraintFactory):
379379
entity_a.value = value_1
380380
entity_b.value = value_1
381381

382-
assert score_manager.explain(problem).get_score() == SimpleScore.of(1)
382+
assert score_manager.explain(problem).score == SimpleScore.of(1)
383383

384384
entity_b.value = value_2
385385

386-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
386+
assert score_manager.explain(problem).score == SimpleScore.of(2)
387387

388388
entity_a.value = value_2
389389

390-
assert score_manager.explain(problem).get_score() == SimpleScore.of(0)
390+
assert score_manager.explain(problem).score == SimpleScore.of(0)
391391

392392

393393
def test_to_sorted_set():
@@ -412,15 +412,15 @@ def define_constraints(constraint_factory: ConstraintFactory):
412412
entity_a.value = value_1
413413
entity_b.value = value_1
414414

415-
assert score_manager.explain(problem).get_score() == SimpleScore.of(1)
415+
assert score_manager.explain(problem).score == SimpleScore.of(1)
416416

417417
entity_b.value = value_2
418418

419-
assert score_manager.explain(problem).get_score() == SimpleScore.of(1)
419+
assert score_manager.explain(problem).score == SimpleScore.of(1)
420420

421421
entity_a.value = value_2
422422

423-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
423+
assert score_manager.explain(problem).score == SimpleScore.of(2)
424424

425425

426426
def test_to_sorted_map():
@@ -447,19 +447,19 @@ def define_constraints(constraint_factory: ConstraintFactory):
447447
entity_a.value = value_1
448448
entity_b.value = value_1
449449

450-
assert score_manager.explain(problem).get_score() == SimpleScore.of(1)
450+
assert score_manager.explain(problem).score == SimpleScore.of(1)
451451

452452
entity_b.value = value_2
453453

454-
assert score_manager.explain(problem).get_score() == SimpleScore.of(0)
454+
assert score_manager.explain(problem).score == SimpleScore.of(0)
455455

456456
entity_a.value = value_2
457457

458-
assert score_manager.explain(problem).get_score() == SimpleScore.of(0)
458+
assert score_manager.explain(problem).score == SimpleScore.of(0)
459459

460460
entity_b.value = value_1
461461

462-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
462+
assert score_manager.explain(problem).score == SimpleScore.of(2)
463463

464464

465465
def test_conditionally():
@@ -487,7 +487,7 @@ def define_constraints(constraint_factory: ConstraintFactory):
487487
entity_a2.value = value_1
488488
entity_b.value = value_1
489489

490-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
490+
assert score_manager.explain(problem).score == SimpleScore.of(2)
491491

492492

493493
def test_compose():
@@ -517,15 +517,15 @@ def define_constraints(constraint_factory: ConstraintFactory):
517517
entity_a.value = value_1
518518
entity_b.value = value_1
519519

520-
assert score_manager.explain(problem).get_score() == SimpleScore.of(11)
520+
assert score_manager.explain(problem).score == SimpleScore.of(11)
521521

522522
entity_a.value = value_2
523523

524-
assert score_manager.explain(problem).get_score() == SimpleScore.of(21)
524+
assert score_manager.explain(problem).score == SimpleScore.of(21)
525525

526526
entity_b.value = value_2
527527

528-
assert score_manager.explain(problem).get_score() == SimpleScore.of(22)
528+
assert score_manager.explain(problem).score == SimpleScore.of(22)
529529

530530

531531
def test_collect_and_then():
@@ -553,15 +553,15 @@ def define_constraints(constraint_factory: ConstraintFactory):
553553
entity_a.value = value_1
554554
entity_b.value = value_1
555555

556-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
556+
assert score_manager.explain(problem).score == SimpleScore.of(2)
557557

558558
entity_a.value = value_2
559559

560-
assert score_manager.explain(problem).get_score() == SimpleScore.of(2)
560+
assert score_manager.explain(problem).score == SimpleScore.of(2)
561561

562562
entity_b.value = value_2
563563

564-
assert score_manager.explain(problem).get_score() == SimpleScore.of(4)
564+
assert score_manager.explain(problem).score == SimpleScore.of(4)
565565

566566

567567
def test_flatten_last():
@@ -584,4 +584,4 @@ def define_constraints(constraint_factory: ConstraintFactory):
584584
problem = Solution([entity_a], [value_1])
585585
entity_a.value = value_1
586586

587-
assert score_manager.explain(problem).get_score() == SimpleScore.of(3)
587+
assert score_manager.explain(problem).score == SimpleScore.of(3)

0 commit comments

Comments
 (0)