package Ġbal d . spec Ċ Ċ import Ġbal d . json . Json Spec Requirement Ċ import Ġbal d . json . Json Test Spec Ċ import Ġnet . bal d . Converter Ċ import Ġorg . apache . jena . rdf . model . Model Ċ import Ġorg . junit . jupiter . params . Parameterized Test Ċ import Ġorg . junit . jupiter . params . provider . Arguments Source Ċ import Ġkotlin . test . fail Ċ Ċ /** Ċ Ġ* ĠBase Ġclass Ġfor Ġintegration Ġtests Ġthat Ġrun Ġa Ġconverter Ġagainst Ġthe ĠB AL D Ġspecification . Ċ Ġ* ĠRuns Ġa Ġseries Ġof Ġparameter ised Ġtests Ġwith Ġparameters Ġprovided Ġby Ġ[ Test Scenario Provider ]. Ċ Ġ* ĠThe Ġtest Ġsuite Ġis Ġdefined Ġin Ġthe Ġ/ spec / spec . yaml Ġresource . Ċ Ġ* ĠTests Ġare Ġdefined Ġin Ġ[ Json Test Spec ] Ġand Ġ[ Json Spec Requirement ] Ġformat . Ċ Ġ* ĠTo Ġadd Ġor Ġmodify Ġtests , Ġupdate Ġ/ spec / spec . yaml . Ċ Ġ*/ Ċ abstract Ġclass ĠBase Spec Test Ġ{ ĊĠĠĠ Ġprotected Ġabstract Ġval Ġconverter : ĠConverter ĊĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġ@ Arguments Source ( Test Scenario Provider :: class ) ĊĠĠĠ Ġfun Ġtest ( test : ĠSpec Requirement ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Test Ġ${ test . name } :\ n ${ test . comment Ġ?: Ġ" No Ġdescription "} ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest . result ( converter ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġtest . expect ation () ĊĠĠĠĠĠĠĠ Ġval Ġsuccess Ġ= Ġexpected . is Is omorphic With ( result ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Test Ġ${ test . name } Ġpassed .") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Test Ġ${ test . name } Ġfailed .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected . diff ( result )?. let Ġ{ Ġdiff Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" The Ġfollowing Ġstatements Ġwere Ġexpected Ġbut Ġnot Ġfound :") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiff . write ( System . out , Ġ" ttl ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . diff ( expected )?. let Ġ{ Ġdiff Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" The Ġfollowing Ġstatements Ġwere Ġfound Ġbut Ġnot Ġexpected :") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiff . write ( System . out , Ġ" ttl ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail (" Test Ġ${ test . name } Ġfailed Ġ- Ġsee Ġlog Ġfor Ġdetails .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠModel . diff ( to : ĠModel ): ĠModel ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprefixes Ġ= Ġthis . ns Prefix Map Ġ+ Ġto . ns Prefix Map ĊĠĠĠĠĠĠĠ Ġreturn Ġdifference ( to ). set Ns Prefixes ( prefixes ). take Unless ( Model :: isEmpty ) ĊĠĠĠ Ġ} Ċ }