From c8d0c557d25a18e62005e57842d9eb70271e340c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ali=20Sinan=20K=C3=B6ksal?= <alisinan@gmail.com>
Date: Tue, 8 Nov 2011 22:35:35 +0000
Subject: [PATCH] Count the number of RBTs generated along with their sizes

---
 scalacheck-testcases/RedBlackTree.scala | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/scalacheck-testcases/RedBlackTree.scala b/scalacheck-testcases/RedBlackTree.scala
index 30bbb9222..1a03cecd9 100644
--- a/scalacheck-testcases/RedBlackTree.scala
+++ b/scalacheck-testcases/RedBlackTree.scala
@@ -100,16 +100,26 @@ object RedBlackTree {
   def main(args: Array[String]): Unit = {
     val iter = (new Iterator[Tree] {
       private var counter = 0
-      def hasNext : Boolean = true || counter < 10
+      def hasNext : Boolean = counter < 1000
       def next : Tree = { counter += 1; genTree.sample.get }
     })
 
-    val s = scala.collection.mutable.Set[Int]()
-
-    for (t <- iter if isRedBlackTree(t)) {
+    val sizes = scala.collection.mutable.Map[Int, Int]()
+    var totalCount = 0
+    var rbtCount = 0
+
+    for (t <- iter) {
+      totalCount += 1
+      if (isRedBlackTree(t)) {
+        rbtCount += 1
+        val s = size(t)
+        sizes += ((s, sizes.getOrElse(s, 0) + 1))
+      }
       //println("Here is a tree : " + t)
-      s += (size(t))
-      println(s)
     }
+    println("rbt count: " + rbtCount)
+    println("total count: " + totalCount)
+    println("ratio of red-black trees: " + (rbtCount.toDouble / totalCount))
+    println("unique sizes of generated trees: " + sizes)
   }
 }
-- 
GitLab