/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . common izer Ċ Ċ import Ġorg . jetbrains . kotlin . kon an . target . Kon an Target Ċ import Ġorg . jetbrains . kotlin . kon an . target . Kon an Target .* Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠCommon izer Target Identity String Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġleaf Targets () Ġ{ ĊĠĠĠĠĠĠĠ ĠKon an Target . pre defined Targets . values . forEach Ġ{ Ġkon an Target Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( kon an Target . name , ĠCommon izer Target ( kon an Target ). identity String ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Common izer Target ( kon an Target ), Ġparse Common izer Target ( Common izer Target ( kon an Target ). identity String )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` simple Ġshared Ġtargets Ġare Ġinvariant Ġunder Ġkon an Target Ġorder `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmac os First Ġ= ĠCommon izer Target ( MAC OS _ X 6 4 , ĠLIN UX _ X 6 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġlinux First Ġ= ĠCommon izer Target ( LINUX _ X 6 4 , ĠMAC OS _ X 6 4 ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( macos First , Ġlinux First ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( macos First . identity String , Ġlinux First . identity String ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( linux First , Ġparse Common izer Target ( linux First . identity String )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( macos First , Ġparse Common izer Target ( macos First . identity String )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( macos First , Ġparse Common izer Target ( linux First . identity String )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( linux First , Ġparse Common izer Target ( macos First . identity String )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` hierarchical Ġcommon izer Ġtargets `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhierarchy Ġ= ĠShared Common izer Target ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommon izer Target ( LINUX _ X 6 4 , ĠMAC OS _ X 6 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommon izer Target ( IOS _ ARM 6 4 , ĠIOS _ X 6 4 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( set Of ( LINUX _ X 6 4 , ĠMAC OS _ X 6 4 , ĠIOS _ ARM 6 4 , ĠIOS _ X 6 4 ), Ġhierarchy . kon an Targets ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hierarchy , Ġparse Common izer Target ( hierarchy . identity String )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` mult ile vel Ġh ierarchical Ġcommon izer Ġtargets `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhierarchy Ġ= ĠShared Common izer Target ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShared Common izer Target ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShared Common izer Target ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShared Common izer Target ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon izer Target ( LINUX _ X 6 4 , ĠMAC OS _ X 6 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon izer Target ( IOS _ X 6 4 , ĠIOS _ ARM 6 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon izer Target ( LINUX _ ARM 3 2 _ H FP ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon izer Target ( LINUX _ MIP SEL 3 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommon izer Target ( WATCH OS _ X 8 6 , ĠW ATCH OS _ ARM 6 4 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( hierarchy , Ġparse Common izer Target ( hierarchy . identity String )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` parsing ĠCommon izer Target `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġparse Common izer Target ("( x , Ġ( x , Ġy , Ġ( a , Ġb ), Ġ( b , Ġc ))) ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShared Common izer Target ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLeaf Common izer Target (" x "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShared Common izer Target ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLeaf Common izer Target (" x "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLeaf Common izer Target (" y "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShared Common izer Target ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLeaf Common izer Target (" a "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLeaf Common izer Target (" b "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShared Common izer Target ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLeaf Common izer Target (" b "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLeaf Common izer Target (" c ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġ` fail Ġparsing ĠCommon izer Target Ġ 1 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġparse Common izer Target (" xxx , ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġ` fail Ġparsing ĠCommon izer Target Ġ 2 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġparse Common izer Target ("") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġ` fail Ġparsing ĠCommon izer Target Ġ 3 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġparse Common izer Target (" () ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġ` fail Ġparsing ĠCommon izer Target Ġ 4 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġparse Common izer Target ("( xxx ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġ` fail Ġparsing ĠCommon izer Target Ġ 5 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġparse Common izer Target (" xxx )") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġ` fail Ġparsing ĠCommon izer Target Ġ 6 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġparse Common izer Target ("( xxx ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġ` fail Ġparsing ĠCommon izer Target Ġ 7 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġparse Common izer Target ("( xxx Ġy yy )") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġ` fail Ġparsing ĠCommon izer Target Ġ 8 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġparse Common izer Target (" Ġ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġ` fail Ġparsing ĠCommon izer Target Ġ 9 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġparse Common izer Target (" xxx ?") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġ` fail Ġparsing ĠCommon izer Target Ġ 1 0 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġparse Common izer Target ("( x , Ġ( x , Ġy )") ĊĠĠĠ Ġ} Ċ } Ċ