/* Ċ Ġ* ĠLicensed Ġto Ġthe ĠApache ĠSoftware ĠFoundation Ġ( ASF ) Ġunder Ġone Ċ Ġ* Ġor Ġmore Ġcontributor Ġlicense Ġagreements . Ġ ĠSee Ġthe ĠNOTICE Ġfile Ċ Ġ* Ġdistributed Ġwith Ġthis Ġwork Ġfor Ġadditional Ġinformation Ċ Ġ* Ġregarding Ġcopyright Ġownership . Ġ ĠThe ĠASF Ġlicenses Ġthis Ġfile Ċ Ġ* Ġto Ġyou Ġ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 Ġorg . apache . beam . examples . kotlin . cookbook Ċ Ċ import Ġorg . apache . beam . sdk . coders . String Utf 8 Coder Ċ import Ġorg . apache . beam . sdk . testing . P Assert Ċ import Ġorg . apache . beam . sdk . testing . Test Pipeline Ċ import Ġorg . apache . beam . sdk . testing . Valid ates Runner Ċ import Ġorg . apache . beam . sdk . transforms . Create Ċ import Ġorg . apache . beam . sdk . transforms . Distinct Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . experimental . categories . Category Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ Ċ /** ĠUnit Ġtests Ġfor Ġ[ Distinct ]. Ġ Ġ*/ Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠDist inct Example Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpipeline : ĠTest Pipeline Ġ= ĠTest Pipeline . create () ĊĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġfun Ġpipeline (): ĠTest Pipeline Ġ= Ġpipeline ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Category ( Valid ates Runner :: class ) ĊĠĠĠ Ġfun Ġtest Distinct () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstrings Ġ= ĠlistOf (" k 1 ", Ġ" k 5 ", Ġ" k 5 ", Ġ" k 2 ", Ġ" k 1 ", Ġ" k 2 ", Ġ" k 3 ") ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġpipeline . apply ( Create . of ( strings ). with Coder ( String Utf 8 Coder . of ())) ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġinput . apply ( Distinct . create ()) ĊĠĠĠĠĠĠĠ ĠP Assert . that ( output ). contains In Any Order (" k 1 ", Ġ" k 5 ", Ġ" k 2 ", Ġ" k 3 ") ĊĠĠĠĠĠĠĠ Ġpipeline . run (). wait Until Finish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Category ( Valid ates Runner :: class ) ĊĠĠĠ Ġfun Ġtest Distinct Empty () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstrings Ġ= ĠlistOf < String >() ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġpipeline . apply ( Create . of ( strings ). with Coder ( String Utf 8 Coder . of ())) ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġinput . apply ( Distinct . create ()) ĊĠĠĠĠĠĠĠ ĠP Assert . that ( output ). empty () ĊĠĠĠĠĠĠĠ Ġpipeline . run (). wait Until Finish () ĊĠĠĠ Ġ} Ċ }