package Ġgraph . b fs . tests Ċ Ċ import Ġio . kot est . core . spec . style . Fun Spec Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . kot est . assertions . throw ables . should Throw Exactly Ċ import Ġgraph . b fs . traverse ĊĊ Ċ class ĠTra versal Tests Ġ: ĠFun Spec ({ ĊĊĠĠ Ġval Ġgraph Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠ Ġ// Ġfirst Ġsub graph ĊĠĠĠĠĠĠĠĠ Ġ" A " Ġto ĠlistOf (" B ", Ġ" C ", Ġ" D "), ĊĠĠĠĠĠĠĠĠ Ġ" B " Ġto ĠlistOf (" E "), ĊĠĠĠĠĠĠĠĠ Ġ" C " Ġto ĠlistOf (" F ", Ġ" G "), ĊĠĠĠĠĠĠĠĠ Ġ" F " Ġto ĠlistOf (" H ", Ġ" I "), ĊĊĠĠĠĠĠĠĠĠ Ġ// Ġsecond Ġsub graph ĊĠĠĠĠĠĠĠĠ Ġ" J " Ġto ĠlistOf (" K ", Ġ" L ", Ġ" M "), ĊĠĠĠĠĠĠĠĠ Ġ" L " Ġto ĠlistOf (" N ", Ġ" O ") ĊĠĠ Ġ) ĊĊĠĠ Ġtest (" successful Ġgraph Ġtraversal Ġusing Ġb read th - first Ġsearch ") Ġ{ ĊĠĠĠĠĠ Ġval Ġfirst Sub graph Ġ= Ġgraph . traverse (" A ") ĊĠĠĠĠĠ Ġfirst Sub graph ĠshouldBe ĠlistOf (" A ", Ġ" B ", Ġ" C ", Ġ" D ", Ġ" E ", Ġ" F ", Ġ" G ", Ġ" H ", Ġ" I ") ĊĊĠĠĠĠĠ Ġval Ġsecond Sub graph Ġ= Ġgraph . traverse (" J ") ĊĠĠĠĠĠ Ġsecond Sub graph ĠshouldBe ĠlistOf (" J ", Ġ" K ", Ġ" L ", Ġ" M ", Ġ" N ", Ġ" O ") ĊĠĠ Ġ} ĊĊĠĠ Ġtest (" throws Ġexception Ġif Ġthe Ġroot Ġvertex Ġis Ġinvalid ") Ġ{ ĊĠĠĠĠĠ Ġshould Throw Exactly < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠ Ġgraph . traverse (" Invalid Vertex ") ĊĠĠĠĠĠ Ġ} ĊĠĠ Ġ} Ċ })