summaryrefslogtreecommitdiff
path: root/book/src/main/scala/book/Main.scala
diff options
context:
space:
mode:
Diffstat (limited to 'book/src/main/scala/book/Main.scala')
-rw-r--r--book/src/main/scala/book/Main.scala20
1 files changed, 19 insertions, 1 deletions
diff --git a/book/src/main/scala/book/Main.scala b/book/src/main/scala/book/Main.scala
index 8ebcbd4..fb61e57 100644
--- a/book/src/main/scala/book/Main.scala
+++ b/book/src/main/scala/book/Main.scala
@@ -25,7 +25,25 @@ object Main {
for(res <- Book.autoResources ++ Book.manualResources) {
copy(getClass.getResourceAsStream("/" + res), "output/" + res)
}
- sect.structure
+
+ val allNames = {
+ def rec(n: Node): Seq[String] = {
+ n.name +: n.children.flatMap(rec)
+ }
+ rec(sect.structure).toSet
+ }
+ val dupes = allNames.groupBy(x => x)
+ .values
+ .filter(_.size > 1)
+ .map(_.head)
+ .toSet
+
+ assert(dupes.size == 0, s"Duplicate names: $dupes")
+
+ val dangling = sect.usedRefs -- allNames
+
+ assert(dangling.size == 0, s"Dangling Refs: $dangling")
+
println("Writing Done")
}