File tree Expand file tree Collapse file tree 3 files changed +61
-4
lines changed
Expand file tree Collapse file tree 3 files changed +61
-4
lines changed Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ write_to = "_version.py"
1313
1414[project ]
1515name = " tptools"
16- version = " 0.6.0. 1"
16+ version = " 0.6.1"
1717authors = [{
name =
" martin f. krafft" ,
email =
" [email protected] " }]
1818description = " A set of tools to export data from with TournamentSoftware"
1919readme = " README.md"
Original file line number Diff line number Diff line change @@ -270,6 +270,56 @@ def test_resolve_unmatched_fabricate(
270270 assert len (matchmaker .unmatched ) == 0
271271
272272
273+ def test_resolve_unmatched_fabricate_scores_reversed (
274+ matchmaker : TPMatchMaker ,
275+ TPPlayerMatchFactory : TPPlayerMatchFactoryType ,
276+ tpentry1 : TPEntry ,
277+ ) -> None :
278+ common = {
279+ "matchnr" : 1 ,
280+ "van1" : 3001 ,
281+ "van2" : 3002 ,
282+ }
283+ srcpm1 = TPPlayerMatchFactory (** common | {"planning" : 2001 , "wn" : 1001 , "vn" : None })
284+ srcpm2 = TPPlayerMatchFactory (
285+ ** common
286+ | {
287+ "planning" : 2002 ,
288+ "wn" : 1003 ,
289+ "vn" : 1004 ,
290+ }
291+ )
292+ pm = TPPlayerMatchFactory (
293+ matchnr = 2 ,
294+ planning = 1001 ,
295+ van1 = 2001 ,
296+ van2 = 2002 ,
297+ winner = 1 ,
298+ team1set1 = 11 ,
299+ team2set1 = 5 ,
300+ team1set2 = 11 ,
301+ team2set2 = 6 ,
302+ team1set3 = 7 ,
303+ team2set3 = 11 ,
304+ team1set4 = 11 ,
305+ team2set4 = 8 ,
306+ entry = tpentry1 ,
307+ )
308+
309+ matchmaker .add_playermatch (srcpm1 )
310+ matchmaker .add_playermatch (srcpm2 )
311+ matchmaker .add_playermatch (pm )
312+
313+ matchmaker .resolve_unmatched ()
314+
315+ m = [m for m in matchmaker .matches if m .id == "1-2" ][0 ]
316+
317+ assert m .pm1 .get_scores () == m .pm2 .get_scores (reversed = True )
318+
319+ assert len (matchmaker .matches ) == 2
320+ assert len (matchmaker .unmatched ) == 0
321+
322+
273323def test_resolve_unmatched_fabricate_1st_round (
274324 matchmaker : TPMatchMaker ,
275325 pmplayer1 : TPPlayerMatch ,
Original file line number Diff line number Diff line change @@ -82,9 +82,9 @@ def _check_score_consistency(self) -> Self:
8282 and len (sc2 ) == 0
8383 ):
8484 return self
85- # assert (sc1 := self.pm1.get_scores(reversed=self.pm1.winner == 2)) == sc2, (
86- # f"PlayerMatches have different scorelines: {sc1} vs. {sc2}"
87- # )
85+ assert (sc1 := self .pm1 .get_scores (reversed = self .pm1 .winner == 2 )) == sc2 , (
86+ f"PlayerMatches have different scorelines: { sc1 } vs. { sc2 } "
87+ )
8888 return self
8989
9090 @model_validator (mode = "after" )
@@ -384,6 +384,12 @@ def resolve_unmatched(self) -> None:
384384 ): # pragma: nocover — there is a missed branch here, but I cannot be
385385 # bothered.
386386 mmlogger .info (f"Fabricating a PlayerMatch to match single { pm !r} " )
387+
388+ scores = pm .get_scores (reversed = True )
389+ sup : dict [str , int ] = {}
390+ for g , sc in enumerate (scores , 1 ):
391+ sup |= {f"team{ t + 1 } set{ g } " : sc [t ] for t in range (2 )}
392+
387393 self .add_playermatch (
388394 pm .model_copy (
389395 update = {
@@ -395,6 +401,7 @@ def resolve_unmatched(self) -> None:
395401 else None ,
396402 "entry" : None ,
397403 }
404+ | sup
398405 )
399406 )
400407
You can’t perform that action at this time.
0 commit comments