package Ġcom . av ito . module . dependencies Ċ Ċ import Ġcom . av ito . test . gradle . Test Project Generator Ċ import Ġcom . av ito . test . gradle . dependencies . Gradle Dependency Ċ import Ġcom . av ito . test . gradle . module . Android App Module Ċ import Ġcom . av ito . test . gradle . module . Android Lib Module Ċ import Ġcom . av ito . test . gradle . module . Kotlin Module Ċ import Ġcom . av ito . test . gradle . plugin . plugins Ċ import Ġjava . io . File Ċ Ċ internal Ġobject ĠDependencies Graph Test Project Ġ{ ĊĊĠĠĠ Ġfun Ġgenerate ( dir : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTest Project Generator ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ= Ġplugins Ġ{ Ġid (" com . av ito . android . module - dependencies - graph ") Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid App Module ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Root A ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . project (": Leaf F "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . project (": Leaf E "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . project ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ": Leaf E ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . CONFIGURATION . ANDROID _ TEST _ IMPLEMENT ATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . project ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ": Unique A ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . CONFIGURATION . ANDROID _ TEST _ IMPLEMENT ATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid App Module ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Root B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . project (": Leaf C "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . project ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ": Leaf G ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . CONFIGURATION . ANDROID _ TEST _ IMPLEMENT ATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . project ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ": Unique B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . CONFIGURATION . ANDROID _ TEST _ IMPLEMENT ATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid App Module ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Copy Root B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . project (": Leaf C "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . project ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ": Leaf G ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . CONFIGURATION . ANDROID _ TEST _ IMPLEMENT ATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . project ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ": Unique Copy B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Dependency . Safe . CONFIGURATION . ANDROID _ TEST _ IMPLEMENT ATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Lib Module ( name Ġ= Ġ" Leaf C ", Ġdependencies Ġ= Ġset Of ( Gradle Dependency . Safe . project (": Leaf D ")) ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Lib Module ( name Ġ= Ġ" Leaf G ", Ġdependencies Ġ= Ġset Of ( Gradle Dependency . Safe . project (": Leaf E ")) ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Module ( name Ġ= Ġ" Leaf D ", Ġdependencies Ġ= Ġset Of ( Gradle Dependency . Safe . project (": Leaf E ")) ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Module ( name Ġ= Ġ" Leaf E "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Module ( name Ġ= Ġ" Leaf F "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Module ( name Ġ= Ġ" Unique A "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Module ( name Ġ= Ġ" Unique B "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Module ( name Ġ= Ġ" Unique Copy B "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Module ( name Ġ= Ġ" Fake Root ", Ġdependencies Ġ= Ġset Of ( Gradle Dependency . Safe . project (": Leaf C ")) ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. generate In ( dir ) ĊĠĠĠ Ġ} Ċ } Ċ