Author: robinanil
Date: Sun Mar 13 19:07:17 2011
New Revision: 1081198

URL: http://svn.apache.org/viewvc?rev=1081198&view=rev
Log:
Adding simple tests to illustrate FPGrowth MAHOUT-617

Modified:
    
mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/FPGrowthTest.java

Modified: 
mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/FPGrowthTest.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/FPGrowthTest.java?rev=1081198&r1=1081197&r2=1081198&view=diff
==============================================================================
--- 
mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/FPGrowthTest.java
 (original)
+++ 
mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/FPGrowthTest.java
 Sun Mar 13 19:07:17 2011
@@ -81,6 +81,76 @@ public final class FPGrowthTest extends 
       frequentPatterns.toString());
 
   }
+  
+  /**
+   * Trivial test for MAHOUT-617
+   */
+  @Test
+  public void testMaxHeapFPGrowthData1() throws Exception {
+
+    FPGrowth<String> fp = new FPGrowth<String>();
+
+    Collection<Pair<List<String>,Long>> transactions = new 
ArrayList<Pair<List<String>,Long>>();
+    transactions.add(new Pair<List<String>,Long>(Arrays.asList("X"), 12L));
+    transactions.add(new Pair<List<String>,Long>(Arrays.asList("Y"), 4L));
+    transactions.add(new Pair<List<String>,Long>(Arrays.asList("X", "Y"), 
10L));
+
+    Path path = getTestTempFilePath("fpgrowthTestData1.dat");
+    Configuration conf = new Configuration();
+    FileSystem fs = FileSystem.get(conf);
+    System.out.println(fp.generateFList(transactions.iterator(), 2));
+    SequenceFile.Writer writer =
+        new SequenceFile.Writer(fs, conf, path, Text.class, 
TopKStringPatterns.class);
+    fp.generateTopKFrequentPatterns(
+        transactions.iterator(),
+        fp.generateFList(transactions.iterator(), 2),
+        2,
+        100,
+        new HashSet<String>(),
+        new StringOutputConverter(new 
SequenceFileOutputCollector<Text,TopKStringPatterns>(writer)),
+        new ContextStatusUpdater(null));
+    writer.close();
+
+    List<Pair<String, TopKStringPatterns>> frequentPatterns = 
FPGrowth.readFrequentPattern(fs, conf, path);
+    assertEquals(
+      "[(Y,([Y],14), ([X, Y],10)), (X,([X],22), ([X, Y],10))]", 
frequentPatterns.toString());
+  }
+  
+  /**
+   * Trivial test for MAHOUT-617
+   */
+  @Test
+  public void testMaxHeapFPGrowthData2() throws Exception {
+
+    FPGrowth<String> fp = new FPGrowth<String>();
+
+    Collection<Pair<List<String>,Long>> transactions = new 
ArrayList<Pair<List<String>,Long>>();
+    transactions.add(new Pair<List<String>,Long>(Arrays.asList("X"), 12L));
+    transactions.add(new Pair<List<String>,Long>(Arrays.asList("Y"), 4L));
+    transactions.add(new Pair<List<String>,Long>(Arrays.asList("X", "Y"), 
10L));
+    transactions.add(new Pair<List<String>,Long>(Arrays.asList("X", "Y", "Z"), 
11L));
+
+    Path path = getTestTempFilePath("fpgrowthTestData2.dat");
+    Configuration conf = new Configuration();
+    FileSystem fs = FileSystem.get(conf);
+    System.out.println(fp.generateFList(transactions.iterator(), 2));
+    SequenceFile.Writer writer =
+        new SequenceFile.Writer(fs, conf, path, Text.class, 
TopKStringPatterns.class);
+    fp.generateTopKFrequentPatterns(
+        transactions.iterator(),
+        fp.generateFList(transactions.iterator(), 2),
+        2,
+        100,
+        new HashSet<String>(),
+        new StringOutputConverter(new 
SequenceFileOutputCollector<Text,TopKStringPatterns>(writer)),
+        new ContextStatusUpdater(null));
+    writer.close();
+
+    List<Pair<String, TopKStringPatterns>> frequentPatterns = 
FPGrowth.readFrequentPattern(fs, conf, path);
+    assertEquals(
+      "[(Z,([X, Y, Z],11)), (Y,([Y],25), ([X, Y],21), ([X, Y, Z],11)), 
(X,([X],33), ([X, Y],21), ([X, Y, Z],11))]",
+      frequentPatterns.toString());
+  }
 
   /**
    * Trivial test for MAHOUT-355


Reply via email to