Skip to content

Commit 793f85c

Browse files
author
Jacky Li
committed
add Java test case
1 parent 7783351 commit 793f85c

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one or more
3+
* contributor license agreements. See the NOTICE file distributed with
4+
* this work for additional information regarding copyright ownership.
5+
* The ASF licenses this file to You under the Apache License, Version 2.0
6+
* (the "License"); you may not use this file except in compliance with
7+
* the License. You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
18+
package org.apache.spark.mllib.fpm;
19+
20+
import java.io.Serializable;
21+
import java.util.ArrayList;
22+
import java.util.List;
23+
24+
import org.junit.After;
25+
import org.junit.Before;
26+
import org.junit.Test;
27+
import static org.junit.Assert.*;
28+
29+
import com.google.common.collect.Lists;
30+
31+
import org.apache.spark.api.java.JavaRDD;
32+
import org.apache.spark.api.java.JavaSparkContext;
33+
34+
public class JavaFPGrowthSuite implements Serializable {
35+
private transient JavaSparkContext sc;
36+
37+
@Before
38+
public void setUp() {
39+
sc = new JavaSparkContext("local", "JavaFPGrowth");
40+
}
41+
42+
@After
43+
public void tearDown() {
44+
sc.stop();
45+
sc = null;
46+
}
47+
48+
@Test
49+
public void runFPGrowth() {
50+
JavaRDD<ArrayList<String>> rdd = sc.parallelize(Lists.newArrayList(
51+
Lists.newArrayList("r z h k p".split(" ")),
52+
Lists.newArrayList("z y x w v u t s".split(" ")),
53+
Lists.newArrayList("s x o n r".split(" ")),
54+
Lists.newArrayList("x z y m t s q e".split(" ")),
55+
Lists.newArrayList("z".split(" ")),
56+
Lists.newArrayList("x z y r q t p".split(" "))), 2);
57+
58+
FPGrowth fpg = new FPGrowth();
59+
60+
/*
61+
FPGrowthModel model6 = fpg
62+
.setMinSupport(0.9)
63+
.setNumPartitions(1)
64+
.run(rdd);
65+
assert(model6.javaFreqItemsets().count() == 0);
66+
67+
FPGrowthModel model3 = fpg
68+
.setMinSupport(0.5)
69+
.setNumPartitions(2)
70+
.run(rdd);
71+
val freqItemsets3 = model3.freqItemsets.collect().map { case (items, count) =>
72+
(items.toSet, count)
73+
}
74+
val expected = Set(
75+
(Set("s"), 3L), (Set("z"), 5L), (Set("x"), 4L), (Set("t"), 3L), (Set("y"), 3L),
76+
(Set("r"), 3L),
77+
(Set("x", "z"), 3L), (Set("t", "y"), 3L), (Set("t", "x"), 3L), (Set("s", "x"), 3L),
78+
(Set("y", "x"), 3L), (Set("y", "z"), 3L), (Set("t", "z"), 3L),
79+
(Set("y", "x", "z"), 3L), (Set("t", "x", "z"), 3L), (Set("t", "y", "z"), 3L),
80+
(Set("t", "y", "x"), 3L),
81+
(Set("t", "y", "x", "z"), 3L))
82+
assert(freqItemsets3.toSet === expected)
83+
84+
val model2 = fpg
85+
.setMinSupport(0.3)
86+
.setNumPartitions(4)
87+
.run[String](rdd)
88+
assert(model2.freqItemsets.count() == 54)
89+
90+
val model1 = fpg
91+
.setMinSupport(0.1)
92+
.setNumPartitions(8)
93+
.run[String](rdd)
94+
assert(model1.freqItemsets.count() == 625) */
95+
}
96+
}

0 commit comments

Comments
 (0)