package Ġit . uni bo . tup ro log . solve Ċ Ċ import Ġit . uni bo . tup ro log . dsl . theory . pro log Ċ import Ġit . uni bo . tup ro log . solve . exception . error . Instantiation Error Ċ import Ġit . uni bo . tup ro log . solve . exception . error . TypeError Ċ Ċ internal Ġclass ĠTest Once Impl ( ĊĠĠĠ Ġprivate Ġval Ġsolver Factory : ĠSolver Factory , ĊĠĠĠ Ġoverride Ġval Ġerror Signature : ĠSignature Ċ ) Ġ: ĠTest Once Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġtest Once Cut () Ġ{ ĊĠĠĠĠĠĠĠ Ġpro log Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsolver Ġ= Ġsolver Factory . solver WithDefault Built ins () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġ" once " (" !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsolutions Ġ= Ġsolver . solve ( query , Ġmedium Duration ). toList () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Solution Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin . collections . listOf ( query . yes ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsolutions ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtest Once Cut Or () Ġ{ ĊĠĠĠĠĠĠĠ Ġpro log Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsolver Ġ= Ġsolver Factory . solver WithDefault Built ins () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġ(" once " (" !") Ġand Ġ((" X " Ġeq Ġ 1 ) Ġor Ġ(" X " Ġeq Ġ 2 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsolutions Ġ= Ġsolver . solve ( query , Ġmedium Duration ). toList () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Solution Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( query ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin . collections . listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyes (" X " Ġto Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyes (" X " Ġto Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsolutions ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtest Once Repeat () Ġ{ ĊĠĠĠĠĠĠĠ Ġpro log Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsolver Ġ= Ġsolver Factory . solver WithDefault Built ins () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġ" once "( repeat ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsolutions Ġ= Ġsolver . solve ( query , Ġmedium Duration ). toList () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Solution Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin . collections . listOf ( query . yes ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsolutions ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtest Once Fail () Ġ{ ĊĠĠĠĠĠĠĠ Ġpro log Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsolver Ġ= Ġsolver Factory . solver WithDefault Built ins () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġ" once "( fail ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsolutions Ġ= Ġsolver . solve ( query , Ġmedium Duration ). toList () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Solution Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin . collections . listOf ( query . no ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsolutions ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtest Once Num () Ġ{ ĊĠĠĠĠĠĠĠ Ġpro log Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsolver Ġ= Ġsolver Factory . solver WithDefault Built ins () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġ" once "( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsolutions Ġ= Ġsolver . solve ( query , Ġmedium Duration ). toList () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Solution Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin . collections . listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery . halt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTypeError . for Goal ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDummy Instances . executionContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Signature , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTypeError . Expected . CALL ABLE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠnumOf ( 3 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsolutions ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtest Once X () Ġ{ ĊĠĠĠĠĠĠĠ Ġpro log Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsolver Ġ= Ġsolver Factory . solver WithDefault Built ins () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġ" once " (" X ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsolutions Ġ= Ġsolver . solve ( query , Ġmedium Duration ). toList () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Solution Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin . collections . listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery . halt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInstanti ation Error . for Goal ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDummy Instances . executionContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Signature , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Of (" X ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsolutions ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ