/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 Ġ- Ġ 2 0 1 9 ĠMichael ĠR app Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ċ Ġ* Ġin Ġcompliance Ġwith Ġthe ĠLicense . ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ġdistributed Ġunder Ġthe ĠLicense Ċ Ġ* Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ċ Ġ* Ġor Ġimplied . ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ġlimitations Ġunder Ċ Ġ* Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġde . mr app . ap ri ori . data structure Ċ Ċ import Ġde . mr app . ap ri ori .* Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ /** Ċ Ġ* ĠTests Ġthe Ġfunctionality Ġof Ġthe Ġclass Ġ[ F requ ent Item Sets ]. Ċ Ġ* Ċ Ġ* Ġ@ author ĠMichael ĠR app Ċ Ġ*/ Ċ class ĠF requ ent Item Sets Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Constructor () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfrequent Item Sets Ġ= ĠF requ ent Item Sets < Named Item >( reverse Order ()) ĊĠĠĠĠĠĠĠ Ġval Ġitem Set 1 Ġ= ĠItem Set < Named Item >() ĊĠĠĠĠĠĠĠ Ġitem Set 1 . add ( Named Item (" a ")) ĊĠĠĠĠĠĠĠ Ġitem Set 1 . support Ġ= Ġ 0 . 5 ĊĠĠĠĠĠĠĠ Ġval Ġitem Set 2 Ġ= ĠItem Set < Named Item >() ĊĠĠĠĠĠĠĠ Ġitem Set 2 . add ( Named Item (" b ")) ĊĠĠĠĠĠĠĠ Ġitem Set 2 . support Ġ= Ġ 0 . 6 ĊĠĠĠĠĠĠĠ Ġfrequent Item Sets . add ( item Set 1 ) ĊĠĠĠĠĠĠĠ Ġfrequent Item Sets . add ( item Set 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġfrequent Item Sets . size . to Long ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( item Set 2 , Ġfrequent Item Sets . first ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( item Set 1 , Ġfrequent Item Sets . last ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Format F requ ent Item Sets () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem 1 Ġ= ĠNamed Item (" a ") ĊĠĠĠĠĠĠĠ Ġval Ġitem 2 Ġ= ĠNamed Item (" b ") ĊĠĠĠĠĠĠĠ Ġval Ġsupport 1 Ġ= Ġ 0 . 3 ĊĠĠĠĠĠĠĠ Ġval Ġsupport 2 Ġ= Ġ 0 . 7 ĊĠĠĠĠĠĠĠ Ġval Ġitem Set 1 Ġ= ĠItem Set < Named Item >() ĊĠĠĠĠĠĠĠ Ġitem Set 1 . add ( item 1 ) ĊĠĠĠĠĠĠĠ Ġitem Set 1 . support Ġ= Ġsupport 1 ĊĠĠĠĠĠĠĠ Ġval Ġitem Set 2 Ġ= ĠItem Set < Named Item >() ĊĠĠĠĠĠĠĠ Ġitem Set 2 . add ( item 2 ) ĊĠĠĠĠĠĠĠ Ġitem Set 2 . support Ġ= Ġsupport 2 ĊĠĠĠĠĠĠĠ Ġval Ġfrequent Item Sets Ġ= ĠF requ ent Item Sets < Named Item >( reverse Order ()) ĊĠĠĠĠĠĠĠ Ġfrequent Item Sets . add ( item Set 1 ) ĊĠĠĠĠĠĠĠ Ġfrequent Item Sets . add ( item Set 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" [" Ġ+ Ġitem Set 2 Ġ+ Ġ" Ġ( support Ġ= Ġ" Ġ+ Ġsupport 2 Ġ+ Ġ"), \ n " Ġ+ Ġitem Set 1 Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ( support Ġ= Ġ" Ġ+ Ġsupport 1 Ġ+ Ġ" )] ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF requ ent Item Sets . format F requ ent Item Sets ( frequ ent Item Sets )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Format F requ ent Item Sets If Empty () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfrequent Item Sets Ġ= ĠF requ ent Item Sets < Named Item >( reverse Order ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" [] ", ĠF requ ent Item Sets . format F requ ent Item Sets ( frequ ent Item Sets )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Sort () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Set 1 Ġ= ĠItem Set < Named Item >() ĊĠĠĠĠĠĠĠ Ġitem Set 1 . add ( Named Item (" a ")) ĊĠĠĠĠĠĠĠ Ġitem Set 1 . support Ġ= Ġ 0 . 5 ĊĠĠĠĠĠĠĠ Ġval Ġitem Set 2 Ġ= ĠItem Set < Named Item >() ĊĠĠĠĠĠĠĠ Ġitem Set 1 . add ( Named Item (" b ")) ĊĠĠĠĠĠĠĠ Ġitem Set 2 . add ( Named Item (" c ")) ĊĠĠĠĠĠĠĠ Ġitem Set 2 . support Ġ= Ġ 0 . 4 ĊĠĠĠĠĠĠĠ Ġval Ġfrequent Item Sets Ġ= ĠF requ ent Item Sets < Named Item >( Sorting . for Item Sets ()) ĊĠĠĠĠĠĠĠ Ġfrequent Item Sets . add ( item Set 1 ) ĊĠĠĠĠĠĠĠ Ġfrequent Item Sets . add ( item Set 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( item Set 1 , Ġfrequent Item Sets . first ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( item Set 2 , Ġfrequent Item Sets . last ()) ĊĠĠĠĠĠĠĠ Ġval Ġsorting Ġ= ĠSort ing . for Item Sets (). with Order ( Sorting . Order . ASC ENDING ) ĊĠĠĠĠĠĠĠ Ġval Ġsorted F requ ent Item Sets Ġ= Ġfrequent Item Sets . sort ( sorting ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( item Set 2 , Ġsorted F requ ent Item Sets . first ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( item Set 1 , Ġsorted F requ ent Item Sets . last ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Filter () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Set 1 Ġ= ĠItem Set < Named Item >() ĊĠĠĠĠĠĠĠ Ġitem Set 1 . add ( Named Item (" a ")) ĊĠĠĠĠĠĠĠ Ġitem Set 1 . support Ġ= Ġ 0 . 5 ĊĠĠĠĠĠĠĠ Ġval Ġitem Set 2 Ġ= ĠItem Set < Named Item >() ĊĠĠĠĠĠĠĠ Ġitem Set 1 . add ( Named Item (" b ")) ĊĠĠĠĠĠĠĠ Ġitem Set 2 . add ( Named Item (" c ")) ĊĠĠĠĠĠĠĠ Ġitem Set 2 . support Ġ= Ġ 0 . 4 ĊĠĠĠĠĠĠĠ Ġval Ġfrequent Item Sets Ġ= ĠF requ ent Item Sets < Named Item >( Sorting . for Item Sets ()) ĊĠĠĠĠĠĠĠ Ġfrequent Item Sets . add ( item Set 1 ) ĊĠĠĠĠĠĠĠ Ġfrequent Item Sets . add ( item Set 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( item Set 1 , Ġfrequent Item Sets . first ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( item Set 2 , Ġfrequent Item Sets . last ()) ĊĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= ĠFilter . for Item Sets (). by Size ( 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġfiltered F requ ent Item Sets Ġ= Ġfrequent Item Sets . filter ( filter ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġfiltered F requ ent Item Sets . size . to Long ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( item Set 1 , Ġfiltered F requ ent Item Sets . first ()) ĊĠĠĠ Ġ} Ċ Ċ }