package Ġcom . one gravity . s udoku Ċ Ċ import Ġcom . one gravity . s udoku . solver . solve Ċ import Ġcom . one gravity . dl x . solve Ċ import Ġcom . one gravity . dl x . to DL X Ċ import Ġcom . one gravity . dl x 2 . solve Ċ import Ġcom . one gravity . dl x 2 . to DL X 2 Ċ import Ġcom . one gravity . dl x 3 . solve Ċ import Ġcom . one gravity . dl x 3 . to DL X 3 Ċ import Ġcom . one gravity . s udoku . model . getTest Grid Ċ import Ġkotlinx . coroutines . Del icate Cor outines Api Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠHar dest S udoku Tests Ġ: ĠBaseClass 4 Coroutine Tests () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġfilename Ġ= Ġ" har dest . csv " ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest DL X () Ġ{ ĊĠĠĠĠĠĠĠ Ġget P uzz les ( filename ) Ġ{ Ġpuzzle , Ġsolution Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrid Ġ= Ġget Test Grid ( pu zzle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest And Validate S udoku ( grid , Ġsolution ) Ġ{ Ġcollect Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto DL X (). solve Ġ{ Ġrows Ġ-> Ġcollect ( rows ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest DL X 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġget P uzz les ( filename ) Ġ{ Ġpuzzle , Ġsolution Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrid Ġ= Ġget Test Grid ( pu zzle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest And Validate S udoku ( grid , Ġsolution ) Ġ{ Ġcollect Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto DL X 2 (). solve Ġ{ Ġrows Ġ-> Ġcollect ( rows ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest DL X 3 () Ġ{ ĊĠĠĠĠĠĠĠ Ġget P uzz les ( filename ) Ġ{ Ġpuzzle , Ġsolution Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrid Ġ= Ġget Test Grid ( pu zzle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest And Validate S udoku ( grid , Ġsolution ) Ġ{ Ġcollect Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto DL X 3 (). solve Ġ{ Ġrows Ġ-> Ġcollect ( rows ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Del icate Cor outines Api ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Br ute Force () Ġ{ ĊĠĠĠĠĠĠĠ Ġget P uzz les ( filename ) Ġ{ Ġpuzzle , Ġsolution Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrid Ġ= Ġget Test Grid ( pu zzle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġsolution Found Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Blocking ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid . solve Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertArrayEquals ( solution , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsolution Found Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( true , Ġsolution Found ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ