Index: trunk/sources/HeuristicLab.GP.Tests/ProbabilisticTreeCreatorTest.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.Tests/ProbabilisticTreeCreatorTest.cs	(revision 2454)
+++ trunk/sources/HeuristicLab.GP.Tests/ProbabilisticTreeCreatorTest.cs	(revision 2455)
@@ -68,5 +68,5 @@
         strBuilder.Append(Environment.NewLine);
         strBuilder.Append("< "); strBuilder.Append((i + 1) * 5);
-        strBuilder.Append(": "); strBuilder.Append(histogram[i]);
+        strBuilder.Append(": "); strBuilder.AppendFormat("{0:#0.00%}", histogram[i] / (double)randomTrees.Length);
       }
       Assert.Inconclusive("Size distribution of ProbabilisticTreeCreator: " + strBuilder);
@@ -76,4 +76,5 @@
     public void FunctionDistributionTest() {
       Dictionary<IFunction, int> occurances = new Dictionary<IFunction, int>();
+      double n = 0.0;
       for (int i = 0; i < randomTrees.Length; i++) {
         foreach (var node in FunctionTreeIterator.IteratePrefix(randomTrees[i])) {
@@ -82,4 +83,5 @@
               occurances[node.Function] = 0;
             occurances[node.Function]++;
+            n++;
           }
         }
@@ -89,5 +91,5 @@
         strBuilder.Append(Environment.NewLine);
         strBuilder.Append(function.Name); strBuilder.Append(": ");
-        strBuilder.Append(occurances[function]);
+        strBuilder.AppendFormat("{0:#0.00%}", occurances[function] / n);
       }
       Assert.Inconclusive("Function distribution of ProbabilisticTreeCreator: " + strBuilder);
@@ -95,6 +97,29 @@
 
     [TestMethod()]
+    public void NumberOfSubTreesDistributionTest() {
+      Dictionary<int, int> occurances = new Dictionary<int, int>();
+      double n = 0.0;
+      for (int i = 0; i < randomTrees.Length; i++) {
+        foreach (var node in FunctionTreeIterator.IteratePrefix(randomTrees[i])) {
+          if (!occurances.ContainsKey(node.SubTrees.Count))
+            occurances[node.SubTrees.Count] = 0;
+          occurances[node.SubTrees.Count]++;
+          n++;
+        }
+      }
+      StringBuilder strBuilder = new StringBuilder();
+      foreach (var arity in occurances.Keys) {
+        strBuilder.Append(Environment.NewLine);
+        strBuilder.Append(arity); strBuilder.Append(": ");
+        strBuilder.AppendFormat("{0:#0.00%}", occurances[arity] / n);
+      }
+      Assert.Inconclusive("Distribution of function arities of ProbabilisticTreeCreator: " + strBuilder);
+    }
+
+
+    [TestMethod()]
     public void TerminalDistributionTest() {
       Dictionary<IFunction, int> occurances = new Dictionary<IFunction, int>();
+      double n = 0.0;
       for (int i = 0; i < randomTrees.Length; i++) {
         foreach (var node in FunctionTreeIterator.IteratePrefix(randomTrees[i])) {
@@ -103,4 +128,5 @@
               occurances[node.Function] = 0;
             occurances[node.Function]++;
+            n++;
           }
         }
@@ -110,5 +136,5 @@
         strBuilder.Append(Environment.NewLine);
         strBuilder.Append(function.Name); strBuilder.Append(": ");
-        strBuilder.Append(occurances[function]);
+        strBuilder.AppendFormat("{0:#0.00%}", occurances[function] / n);
       }
       Assert.Inconclusive("Terminal distribution of ProbabilisticTreeCreator: " + strBuilder);
Index: trunk/sources/HeuristicLab.GP.Tests/Util.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.Tests/Util.cs	(revision 2454)
+++ trunk/sources/HeuristicLab.GP.Tests/Util.cs	(revision 2455)
@@ -90,5 +90,5 @@
       doubleFunctions.Add(constant);
       doubleFunctions.Add(addition);
-      //doubleFunctions.Add(average);
+      // doubleFunctions.Add(average);
       doubleFunctions.Add(cosinus);
       doubleFunctions.Add(division);
@@ -132,5 +132,5 @@
       functionLibrary.AddFunction(constant);
       functionLibrary.AddFunction(addition);
-      //functionLibrary.AddFunction(average);
+      // functionLibrary.AddFunction(average);
       functionLibrary.AddFunction(and);
       functionLibrary.AddFunction(cosinus);
