/* Ċ Ġ* Ġ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 . t inker pop 4 . gre mlin . t inker cat Ċ Ċ import Ġorg . apache . commons . configuration 2 . Configuration Ċ import Ġorg . apache . t inker pop 4 . gre mlin . Abstract Graph Provider Ċ import Ġorg . apache . t inker pop 4 . gre mlin . Load Graph With . Graph Data Ċ import Ġorg . apache . t inker pop 4 . gre mlin . t inker cat . T inker Cat Provider Ċ import Ġorg . apache . t inker pop 4 . gre mlin . structure . Vertex Property Ċ import Ġorg . apache . t inker pop 4 . gre mlin . TestHelper Ċ import Ġkotlin . Throws Ċ import Ġorg . apache . t inker pop 4 . gre mlin . structure . io . Io Edge Test Ċ import Ġorg . apache . t inker pop 4 . gre mlin . structure . io . Io Vertex Test Ċ import Ġorg . apache . t inker pop 4 . gre mlin . Load Graph With Ċ import Ġorg . apache . t inker pop 4 . gre mlin . structure . Graph Ċ import Ġorg . apache . t inker pop 4 . gre mlin . structure . Graph Test Ċ import Ġjava . lang . IllegalStateException Ċ import Ġorg . apache . t inker pop 4 . gre mlin . structure . util . star . Star Graph Test Ċ import Ġorg . apache . t inker pop 4 . gre mlin . structure . util . det ached . Detached Graph Test Ċ import Ġorg . apache . t inker pop 4 . gre mlin . t inker cat . structure .* Ċ import Ġjava . io . File Ċ import Ġjava . lang . Exception Ċ import Ġjava . util . HashMap Ċ import Ġjava . util . HashSet Ċ Ċ /** Ċ Ġ* Ġ@ author ĠSte phen ĠM allet te Ġ( http :// ste phen . gen op ri me . com ) Ċ Ġ*/ Ċ open Ġclass ĠT inker Cat Provider Ġ: ĠAbstract Graph Provider () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Base Configuration ( ĊĠĠĠĠĠĠĠ Ġgraph Name : ĠString , Ġtest : ĠClass <* >, Ġtest MethodName : ĠString , ĊĠĠĠĠĠĠĠ Ġload Graph With : ĠGraph Data ĊĠĠĠ Ġ): ĠMutable Map < String , ĠAny > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Manager Ġ= Ġselect Id Maker From Graph Data ( load Graph With ) ĊĠĠĠĠĠĠĠ Ġval Ġid Maker Ġ= Ġ( if Ġ( id Manager Ġ== ĠT inker Cat . Default Id Manager . ANY ) Ġselect Id Maker From Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest MethodName ĊĠĠĠĠĠĠĠ Ġ) Ġelse Ġid Manager ). name ĊĊĠĠĠĠĠĠĠ Ġval Ġconfig Map Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGraph . GRAPH Ġto ĠT inker Cat :: class . java . name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT inker Cat . GRE ML IN _ T INK ER GRAPH _ VERTEX _ ID _ MANAGER Ġto Ġid Maker , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT inker Cat . GRE ML IN _ T INK ER GRAPH _ EDGE _ ID _ MANAGER Ġto Ġid Maker , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT inker Cat . GRE ML IN _ T INK ER GRAPH _ VERTEX _ PROPERTY _ ID _ MANAGER Ġto Ġid Maker ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( requires List Cardinality As Default ( load Graph With , test , test MethodName )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Map [ T inker Cat . GRE ML IN _ T INK ER GRAPH _ DEFAULT _ VERTEX _ PROPERTY _ CARD IN AL ITY ] Ġ= ĠVertex Property . Cardinality . list . name ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( requires Persistence ( test , Ġtest MethodName )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Map [ T inker Cat . GRE ML IN _ T INK ER GRAPH _ GRAPH _ FORMAT ] Ġ= Ġ" gr yo " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Map [ T inker Cat . GRE ML IN _ T INK ER GRAPH _ GRAPH _ LOCATION ] Ġ= ĠTest Helper . make TestData File ( test , Ġ" temp ", Ġ"$ test MethodName . k ry o ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġconfig Map Ġas ĠMutable Map < String , Any > ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġclear ( graph : ĠGraph , Ġconfiguration : ĠConfiguration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( graph Ġ!= Ġnull ) Ġgraph . close () ĊĊĠĠĠĠĠĠĠ Ġ// Ġin Ġthe Ġeven Ġthe Ġgraph Ġis Ġpersisted Ġwe Ġneed Ġto Ġclean Ġup ĊĠĠĠĠĠĠĠ Ġval Ġgraph Location Ġ= Ġif Ġ( null Ġ!= Ġconfiguration ) Ġconfiguration . getString ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT inker Cat . GRE ML IN _ T INK ER GRAPH _ GRAPH _ LOCATION , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ) Ġelse Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( graph Location Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠFile ( graph Location ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf . delete () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Implement ations (): ĠSet < Class <* >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠIMP LEMENT ATION ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSome Ġtests Ġrequire Ġspecial Ġconfiguration Ġfor ĠT inker Cat Ġto Ġproperly Ġconfigure Ġthe Ġid Ġmanager . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġselect Id Maker From Test ( test : ĠClass <* >, Ġtest MethodName : ĠString ): ĠT inker Cat . Default Id Manager Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( test ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGraph Test Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtests That Need Long Id Manager Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Vertices With Numeric Id Support Using Double Representation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Vertices With Numeric Id Support Using Double Represent ations ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Vertices With Numeric Id Support Using Integer Representation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Vertices With Numeric Id Support Using Integer Represent ations ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Vertices With Numeric Id Support Using Float Representation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Vertices With Numeric Id Support Using Float Represent ations ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Vertices With Numeric Id Support Using String Representation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Vertices With Numeric Id Support Using String Represent ations ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Edges With Numeric Id Support Using Double Representation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Edges With Numeric Id Support Using Double Represent ations ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Edges With Numeric Id Support Using Integer Representation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Edges With Numeric Id Support Using Integer Represent ations ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Edges With Numeric Id Support Using Float Representation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Edges With Numeric Id Support Using Float Represent ations ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Edges With Numeric Id Support Using String Representation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Edges With Numeric Id Support Using String Represent ations ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtests That Need Uuid Id Manager Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Vertices With Uuid Id Support Using String Representation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Vertices With Uuid Id Support Using String Represent ations ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Edges With Uuid Id Support Using String Representation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Iterate Edges With Uuid Id Support Using String Represent ations ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tests That Need Long Id Manager . contains ( test MethodName )) Ġreturn ĠT inker Cat . Default Id Manager . LONG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( tests That Need Uuid Id Manager . contains ( test MethodName )) Ġreturn ĠT inker Cat . Default Id Manager . UUID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠIo Edge Test Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtests That Need Long Id Manager Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Edge [ graph son - v 1 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Detached Edge As Reference [ graph son - v 1 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Detached Edge [ graph son - v 1 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Edge [ graph son - v 2 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Detached Edge As Reference [ graph son - v 2 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Detached Edge [ graph son - v 2 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tests That Need Long Id Manager . contains ( test MethodName )) Ġreturn ĠT inker Cat . Default Id Manager . LONG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠIo Vertex Test Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtests That Need Long Id Manager Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Vertex With BOT HE d ges [ graph son - v 1 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Vertex With IN Edges [ graph son - v 1 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Vertex With OUT Edges [ graph son - v 1 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Vertex No Edges [ graph son - v 1 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Detached Vertex No Edges [ graph son - v 1 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Detached Vertex As Reference No Edges [ graph son - v 1 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Vertex Multi Props No Edges [ graph son - v 1 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Vertex With BOT HE d ges [ graph son - v 2 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Vertex With IN Edges [ graph son - v 2 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Vertex With OUT Edges [ graph son - v 2 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Vertex No Edges [ graph son - v 2 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Detached Vertex No Edges [ graph son - v 2 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Detached Vertex As Reference No Edges [ graph son - v 2 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should ReadWrite Vertex Multi Props No Edges [ graph son - v 2 ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tests That Need Long Id Manager . contains ( test MethodName )) Ġreturn ĠT inker Cat . Default Id Manager . LONG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠT inker Cat . Default Id Manager . ANY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest Ġthat Ġload Ġwith Ġspecific Ġgraph Ġdata Ġcan Ġbe Ġconfigured Ġwith Ġa Ġspecific Ġid Ġmanager Ġas Ġthe Ġdata Ġtype Ġto ĊĠĠĠĠ Ġ* Ġbe Ġused Ġin Ġthe Ġtest Ġfor Ġthat Ġgraph Ġis Ġknown . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġselect Id Maker From Graph Data ( load Graph With : ĠGraph Data ?): ĠT inker Cat . Default Id Manager Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġload Graph With ) Ġreturn ĠT inker Cat . Default Id Manager . ANY ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( load Graph With Ġ== ĠGraph Data . CLASS IC ) ĠT inker Cat . Default Id Manager . INTEGER Ġelse Ġif Ġ( load Graph With Ġ== ĠGraph Data . MO DER N ) ĠT inker Cat . Default Id Manager . INTEGER Ġelse Ġif Ġ( load Graph With Ġ== ĠGraph Data . CRE W ) ĠT inker Cat . Default Id Manager . INTEGER Ġelse Ġif Ġ( load Graph With Ġ== ĠGraph Data . GR ATE FUL ) ĠT inker Cat . Default Id Manager . INTEGER Ġelse Ġif Ġ( load Graph With Ġ== ĠGraph Data . S INK ) ĠT inker Cat . Default Id Manager . INTEGER Ġelse Ġthrow ĠIllegalStateException ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Need Ġto Ġdefine Ġa Ġnew Ġ% s Ġfor Ġ% s ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT inker Cat . Id Manager :: class . java . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Graph With . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠIMP LEMENT ATION Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT inker Edge :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT inker Element :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT inker Cat :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT inker Cat Variables :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT inker Property :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT inker Vertex :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT inker Vertex Property :: class . java , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠDetermines Ġif Ġa Ġtest Ġrequires ĠT inker Cat Ġpersistence Ġto Ġbe Ġconfigured Ġwith Ġgraph Ġlocation Ġand Ġformat . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġrequires Persistence ( test : ĠClass <* >, Ġtest MethodName : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtest Ġ== ĠGraph Test :: class . java Ġ&& Ġtest MethodName Ġ== Ġ" should Persist Data On Close " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠDetermines Ġif Ġa Ġtest Ġrequires Ġa Ġdifferent Ġcardinality Ġas Ġthe Ġdefault Ġor Ġnot . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġrequires List Cardinality As Default ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Graph With : ĠGraph Data , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest : ĠClass <* >, Ġtest MethodName : ĠString ĊĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( test MethodName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" should Attach With Create Method " Ġ-> Ġ( load Graph With Ġ== ĠGraph Data . CRE W Ġ|| Ġtest Ġis ĠStar Graph Test ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" test Attach able Create Method " Ġ-> Ġtest Ġis ĠDet ached Graph Test ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }