You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@giraph.apache.org by ac...@apache.org on 2012/02/16 23:12:36 UTC

svn commit: r1245205 [18/18] - in /incubator/giraph/trunk: ./ src/main/java/org/apache/giraph/ src/main/java/org/apache/giraph/benchmark/ src/main/java/org/apache/giraph/bsp/ src/main/java/org/apache/giraph/comm/ src/main/java/org/apache/giraph/example...

Modified: incubator/giraph/trunk/src/test/java/org/apache/giraph/TestBspBasic.java
URL: http://svn.apache.org/viewvc/incubator/giraph/trunk/src/test/java/org/apache/giraph/TestBspBasic.java?rev=1245205&r1=1245204&r2=1245205&view=diff
==============================================================================
--- incubator/giraph/trunk/src/test/java/org/apache/giraph/TestBspBasic.java (original)
+++ incubator/giraph/trunk/src/test/java/org/apache/giraph/TestBspBasic.java Thu Feb 16 22:12:31 2012
@@ -63,340 +63,340 @@ import java.util.List;
  * Unit test for many simple BSP applications.
  */
 public class TestBspBasic extends BspCase {
-    /**
-     * Create the test case
-     *
-     * @param testName name of the test case
-     */
-    public TestBspBasic(String testName) {
-        super(testName);
-    }
-
-    /**
-     * @return the suite of tests being tested
-     */
-    public static Test suite() {
-        return new TestSuite(TestBspBasic.class);
-    }
-
-    /**
-     * Just instantiate the vertex (all functions are implemented) and the
-     * VertexInputFormat using reflection.
-     *
-     * @throws IllegalAccessException
-     * @throws InstantiationException
-     * @throws InterruptedException
-     * @throws IOException
-     * @throws InvocationTargetException
-     * @throws IllegalArgumentException
-     * @throws NoSuchMethodException
-     * @throws SecurityException
-     */
-    public void testInstantiateVertex()
-            throws InstantiationException, IllegalAccessException,
-            IOException, InterruptedException, IllegalArgumentException,
-        InvocationTargetException, SecurityException, NoSuchMethodException {
-        System.out.println("testInstantiateVertex: java.class.path=" +
-                           System.getProperty("java.class.path"));
-        GiraphJob job = new GiraphJob(getCallingMethodName());
-        job.setVertexClass(SimpleSuperstepVertex.class);
-        job.setVertexInputFormatClass(
-            SimpleSuperstepVertex.SimpleSuperstepVertexInputFormat.class);
-        GraphState<LongWritable, IntWritable, FloatWritable, IntWritable> gs =
-            new GraphState<LongWritable, IntWritable,
-                           FloatWritable, IntWritable>();
-        BasicVertex<LongWritable, IntWritable, FloatWritable, IntWritable> vertex =
-            BspUtils.createVertex(job.getConfiguration());
-        vertex.initialize(null, null, null, null);
-        System.out.println("testInstantiateVertex: Got vertex " + vertex +
-                           ", graphState" + gs);
-        VertexInputFormat<LongWritable, IntWritable, FloatWritable, IntWritable>
-            inputFormat = BspUtils.createVertexInputFormat(job.getConfiguration());
-        List<InputSplit> splitArray =
-            inputFormat.getSplits(
-                new JobContext(new Configuration(), new JobID()), 1);
-        ByteArrayOutputStream byteArrayOutputStream =
-            new ByteArrayOutputStream();
-        DataOutputStream outputStream =
-            new DataOutputStream(byteArrayOutputStream);
-        ((Writable) splitArray.get(0)).write(outputStream);
-        System.out.println("testInstantiateVertex: Example output split = " +
-                           byteArrayOutputStream.toString());
-    }
-
-    /**
-     * Do some checks for local job runner.
-     *
-     * @throws IOException
-     * @throws ClassNotFoundException
-     * @throws InterruptedException
-     */
-    public void testLocalJobRunnerConfig()
-            throws IOException, InterruptedException, ClassNotFoundException {
-        if (getJobTracker() != null) {
-            System.out.println("testLocalJobRunnerConfig: Skipping for " +
-                               "non-local");
-            return;
-        }
-        GiraphJob job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.setWorkerConfiguration(5, 5, 100.0f);
-        job.getConfiguration().setBoolean(GiraphJob.SPLIT_MASTER_WORKER, true);
-        job.setVertexClass(SimpleSuperstepVertex.class);
-        job.setVertexInputFormatClass(SimpleSuperstepVertexInputFormat.class);
+  /**
+   * Create the test case
+   *
+   * @param testName name of the test case
+   */
+  public TestBspBasic(String testName) {
+    super(testName);
+  }
+
+  /**
+   * @return the suite of tests being tested
+   */
+  public static Test suite() {
+    return new TestSuite(TestBspBasic.class);
+  }
+
+  /**
+   * Just instantiate the vertex (all functions are implemented) and the
+   * VertexInputFormat using reflection.
+   *
+   * @throws IllegalAccessException
+   * @throws InstantiationException
+   * @throws InterruptedException
+   * @throws IOException
+   * @throws InvocationTargetException
+   * @throws IllegalArgumentException
+   * @throws NoSuchMethodException
+   * @throws SecurityException
+   */
+  public void testInstantiateVertex()
+      throws InstantiationException, IllegalAccessException,
+      IOException, InterruptedException, IllegalArgumentException,
+      InvocationTargetException, SecurityException, NoSuchMethodException {
+    System.out.println("testInstantiateVertex: java.class.path=" +
+        System.getProperty("java.class.path"));
+    GiraphJob job = new GiraphJob(getCallingMethodName());
+    job.setVertexClass(SimpleSuperstepVertex.class);
+    job.setVertexInputFormatClass(
+        SimpleSuperstepVertex.SimpleSuperstepVertexInputFormat.class);
+    GraphState<LongWritable, IntWritable, FloatWritable, IntWritable> gs =
+        new GraphState<LongWritable, IntWritable,
+        FloatWritable, IntWritable>();
+    BasicVertex<LongWritable, IntWritable, FloatWritable, IntWritable> vertex =
+        BspUtils.createVertex(job.getConfiguration());
+    vertex.initialize(null, null, null, null);
+    System.out.println("testInstantiateVertex: Got vertex " + vertex +
+        ", graphState" + gs);
+    VertexInputFormat<LongWritable, IntWritable, FloatWritable, IntWritable>
+    inputFormat = BspUtils.createVertexInputFormat(job.getConfiguration());
+    List<InputSplit> splitArray =
+        inputFormat.getSplits(
+            new JobContext(new Configuration(), new JobID()), 1);
+    ByteArrayOutputStream byteArrayOutputStream =
+        new ByteArrayOutputStream();
+    DataOutputStream outputStream =
+        new DataOutputStream(byteArrayOutputStream);
+    ((Writable) splitArray.get(0)).write(outputStream);
+    System.out.println("testInstantiateVertex: Example output split = " +
+        byteArrayOutputStream.toString());
+  }
+
+  /**
+   * Do some checks for local job runner.
+   *
+   * @throws IOException
+   * @throws ClassNotFoundException
+   * @throws InterruptedException
+   */
+  public void testLocalJobRunnerConfig()
+      throws IOException, InterruptedException, ClassNotFoundException {
+    if (getJobTracker() != null) {
+      System.out.println("testLocalJobRunnerConfig: Skipping for " +
+          "non-local");
+      return;
+    }
+    GiraphJob job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.setWorkerConfiguration(5, 5, 100.0f);
+    job.getConfiguration().setBoolean(GiraphJob.SPLIT_MASTER_WORKER, true);
+    job.setVertexClass(SimpleSuperstepVertex.class);
+    job.setVertexInputFormatClass(SimpleSuperstepVertexInputFormat.class);
+    try {
+      job.run(true);
+      assertTrue(false);
+    } catch (IllegalArgumentException e) {
+    }
+
+    job.getConfiguration().setBoolean(GiraphJob.SPLIT_MASTER_WORKER, false);
+    try {
+      job.run(true);
+      assertTrue(false);
+    } catch (IllegalArgumentException e) {
+    }
+    job.setWorkerConfiguration(1, 1, 100.0f);
+    job.run(true);
+  }
+
+  /**
+   * Run a sample BSP job in JobTracker, kill a task, and make sure
+   * the job fails (not enough attempts to restart)
+   *
+   * @throws IOException
+   * @throws ClassNotFoundException
+   * @throws InterruptedException
+   */
+  public void testBspFail()
+      throws IOException, InterruptedException, ClassNotFoundException {
+    // Allow this test only to be run on a real Hadoop setup
+    if (getJobTracker() == null) {
+      System.out.println("testBspFail: not executed for local setup.");
+      return;
+    }
+
+    GiraphJob job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.getConfiguration().setInt("mapred.map.max.attempts", 1);
+    job.setVertexClass(SimpleFailVertex.class);
+    job.setVertexInputFormatClass(SimplePageRankVertexInputFormat.class);
+    Path outputPath = new Path("/tmp/" + getCallingMethodName());
+    removeAndSetOutput(job, outputPath);
+    assertTrue(!job.run(true));
+  }
+
+  /**
+   * Run a sample BSP job locally and test supersteps.
+   *
+   * @throws IOException
+   * @throws ClassNotFoundException
+   * @throws InterruptedException
+   */
+  public void testBspSuperStep()
+      throws IOException, InterruptedException, ClassNotFoundException {
+    GiraphJob job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.getConfiguration().setFloat(GiraphJob.TOTAL_INPUT_SPLIT_MULTIPLIER,
+        2.0f);
+    // GeneratedInputSplit will generate 10 vertices
+    job.getConfiguration().setLong(GeneratedVertexReader.READER_VERTICES,
+        10);
+    job.setVertexClass(SimpleSuperstepVertex.class);
+    job.setVertexInputFormatClass(SimpleSuperstepVertexInputFormat.class);
+    job.setVertexOutputFormatClass(SimpleSuperstepVertexOutputFormat.class);
+    Path outputPath = new Path("/tmp/" + getCallingMethodName());
+    removeAndSetOutput(job, outputPath);
+    assertTrue(job.run(true));
+    if (getJobTracker() == null) {
+      FileStatus fileStatus = getSinglePartFileStatus(job, outputPath);
+      assertTrue(fileStatus.getLen() == 49);
+    }
+  }
+
+  /**
+   * Run a sample BSP job locally and test messages.
+   *
+   * @throws IOException
+   * @throws ClassNotFoundException
+   * @throws InterruptedException
+   */
+  public void testBspMsg()
+      throws IOException, InterruptedException, ClassNotFoundException {
+    GiraphJob job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.setVertexClass(SimpleMsgVertex.class);
+    job.setVertexInputFormatClass(SimpleSuperstepVertexInputFormat.class);
+    assertTrue(job.run(true));
+  }
+
+
+  /**
+   * Run a sample BSP job locally with no vertices and make sure
+   * it completes.
+   *
+   * @throws IOException
+   * @throws ClassNotFoundException
+   * @throws InterruptedException
+   */
+  public void testEmptyVertexInputFormat()
+      throws IOException, InterruptedException, ClassNotFoundException {
+    GiraphJob job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.getConfiguration().setLong(GeneratedVertexReader.READER_VERTICES,
+        0);
+    job.setVertexClass(SimpleMsgVertex.class);
+    job.setVertexInputFormatClass(SimpleSuperstepVertexInputFormat.class);
+    assertTrue(job.run(true));
+  }
+
+  /**
+   * Run a sample BSP job locally with combiner and checkout output value.
+   *
+   * @throws IOException
+   * @throws ClassNotFoundException
+   * @throws InterruptedException
+   */
+  public void testBspCombiner()
+      throws IOException, InterruptedException, ClassNotFoundException {
+    GiraphJob job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.setVertexClass(SimpleCombinerVertex.class);
+    job.setVertexInputFormatClass(SimpleSuperstepVertexInputFormat.class);
+    job.setVertexCombinerClass(SimpleSumCombiner.class);
+    assertTrue(job.run(true));
+  }
+
+  /**
+   * Run a sample BSP job locally and test PageRank.
+   *
+   * @throws IOException
+   * @throws ClassNotFoundException
+   * @throws InterruptedException
+   */
+  public void testBspPageRank()
+      throws IOException, InterruptedException, ClassNotFoundException {
+    GiraphJob job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.setVertexClass(SimplePageRankVertex.class);
+    job.setWorkerContextClass(
+        SimplePageRankVertex.SimplePageRankVertexWorkerContext.class);
+    job.setVertexInputFormatClass(SimplePageRankVertexInputFormat.class);
+    assertTrue(job.run(true));
+    if (getJobTracker() == null) {
+      double maxPageRank =
+          SimplePageRankVertex.SimplePageRankVertexWorkerContext.getFinalMax();
+      double minPageRank =
+          SimplePageRankVertex.SimplePageRankVertexWorkerContext.getFinalMin();
+      long numVertices =
+          SimplePageRankVertex.SimplePageRankVertexWorkerContext.getFinalSum();
+      System.out.println("testBspPageRank: maxPageRank=" + maxPageRank +
+          " minPageRank=" + minPageRank +
+          " numVertices=" + numVertices);
+      assertTrue("34.030 !< " + maxPageRank + " !< " + " 34.0301",
+          maxPageRank > 34.030 && maxPageRank < 34.0301);
+      assertTrue("0.03 !< " + minPageRank + " !< " + "0.03001",
+          minPageRank > 0.03 && minPageRank < 0.03001);
+      assertTrue("numVertices = " + numVertices + " != 5", numVertices == 5);
+    }
+  }
+
+  /**
+   * Run a sample BSP job locally and test shortest paths.
+   *
+   * @throws IOException
+   * @throws ClassNotFoundException
+   * @throws InterruptedException
+   */
+  public void testBspShortestPaths()
+      throws IOException, InterruptedException, ClassNotFoundException {
+    GiraphJob job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.setVertexClass(SimpleShortestPathsVertex.class);
+    job.setVertexInputFormatClass(SimplePageRankVertexInputFormat.class);
+    job.setVertexOutputFormatClass(
+        SimpleShortestPathsVertexOutputFormat.class);
+    job.getConfiguration().setLong(SimpleShortestPathsVertex.SOURCE_ID, 0);
+    Path outputPath = new Path("/tmp/" + getCallingMethodName());
+    removeAndSetOutput(job, outputPath);
+    assertTrue(job.run(true));
+
+    job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.setVertexClass(SimpleShortestPathsVertex.class);
+    job.setVertexInputFormatClass(SimplePageRankVertexInputFormat.class);
+    job.setVertexOutputFormatClass(
+        SimpleShortestPathsVertexOutputFormat.class);
+    job.getConfiguration().setLong(SimpleShortestPathsVertex.SOURCE_ID, 0);
+    Path outputPath2 = new Path("/tmp/" + getCallingMethodName() + "2");
+    removeAndSetOutput(job, outputPath2);
+    assertTrue(job.run(true));
+    if (getJobTracker() == null) {
+      FileStatus fileStatus = getSinglePartFileStatus(job, outputPath);
+      FileStatus fileStatus2 = getSinglePartFileStatus(job, outputPath2);
+      assertTrue(fileStatus.getLen() == fileStatus2.getLen());
+    }
+  }
+
+  /**
+   * Run a sample BSP job locally and test PageRank with AggregatorWriter.
+   *
+   * @throws IOException
+   * @throws ClassNotFoundException
+   * @throws InterruptedException
+   */
+  public void testBspPageRankWithAggregatorWriter()
+      throws IOException, InterruptedException, ClassNotFoundException {
+    GiraphJob job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.setVertexClass(SimplePageRankVertex.class);
+    job.setWorkerContextClass(
+        SimplePageRankVertex.SimplePageRankVertexWorkerContext.class);
+    job.setVertexInputFormatClass(SimplePageRankVertexInputFormat.class);
+    job.setAggregatorWriterClass(SimpleAggregatorWriter.class);
+    Path outputPath = new Path("/tmp/" + getCallingMethodName());
+    removeAndSetOutput(job, outputPath);
+    assertTrue(job.run(true));
+    if (getJobTracker() == null) {
+      double maxPageRank =
+          SimplePageRankVertex.SimplePageRankVertexWorkerContext.getFinalMax();
+      double minPageRank =
+          SimplePageRankVertex.SimplePageRankVertexWorkerContext.getFinalMin();
+      long numVertices =
+          SimplePageRankVertex.SimplePageRankVertexWorkerContext.getFinalSum();
+      System.out.println("testBspPageRank: maxPageRank=" + maxPageRank +
+          " minPageRank=" + minPageRank +
+          " numVertices=" + numVertices);
+      FileSystem fs = FileSystem.get(new Configuration());
+      FSDataInputStream input =
+          fs.open(new Path(SimpleAggregatorWriter.getFilename()));
+      int i, all;
+      for (i = 0; ; i++) {
+        all = 0;
         try {
-            job.run(true);
-            assertTrue(false);
-        } catch (IllegalArgumentException e) {
-        }
-
-        job.getConfiguration().setBoolean(GiraphJob.SPLIT_MASTER_WORKER, false);
-        try {
-            job.run(true);
-            assertTrue(false);
-        } catch (IllegalArgumentException e) {
-        }
-        job.setWorkerConfiguration(1, 1, 100.0f);
-        job.run(true);
-    }
-
-    /**
-     * Run a sample BSP job in JobTracker, kill a task, and make sure
-     * the job fails (not enough attempts to restart)
-     *
-     * @throws IOException
-     * @throws ClassNotFoundException
-     * @throws InterruptedException
-     */
-    public void testBspFail()
-            throws IOException, InterruptedException, ClassNotFoundException {
-        // Allow this test only to be run on a real Hadoop setup
-        if (getJobTracker() == null) {
-            System.out.println("testBspFail: not executed for local setup.");
-            return;
-        }
-
-        GiraphJob job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.getConfiguration().setInt("mapred.map.max.attempts", 1);
-        job.setVertexClass(SimpleFailVertex.class);
-        job.setVertexInputFormatClass(SimplePageRankVertexInputFormat.class);
-        Path outputPath = new Path("/tmp/" + getCallingMethodName());
-        removeAndSetOutput(job, outputPath);
-        assertTrue(!job.run(true));
-    }
-
-    /**
-     * Run a sample BSP job locally and test supersteps.
-     *
-     * @throws IOException
-     * @throws ClassNotFoundException
-     * @throws InterruptedException
-     */
-    public void testBspSuperStep()
-            throws IOException, InterruptedException, ClassNotFoundException {
-        GiraphJob job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.getConfiguration().setFloat(GiraphJob.TOTAL_INPUT_SPLIT_MULTIPLIER,
-                                        2.0f);
-        // GeneratedInputSplit will generate 10 vertices
-        job.getConfiguration().setLong(GeneratedVertexReader.READER_VERTICES,
-                                       10);
-        job.setVertexClass(SimpleSuperstepVertex.class);
-        job.setVertexInputFormatClass(SimpleSuperstepVertexInputFormat.class);
-        job.setVertexOutputFormatClass(SimpleSuperstepVertexOutputFormat.class);
-        Path outputPath = new Path("/tmp/" + getCallingMethodName());
-        removeAndSetOutput(job, outputPath);
-        assertTrue(job.run(true));
-        if (getJobTracker() == null) {
-            FileStatus fileStatus = getSinglePartFileStatus(job, outputPath);
-            assertTrue(fileStatus.getLen() == 49);
-        }
-    }
-
-    /**
-     * Run a sample BSP job locally and test messages.
-     *
-     * @throws IOException
-     * @throws ClassNotFoundException
-     * @throws InterruptedException
-     */
-    public void testBspMsg()
-            throws IOException, InterruptedException, ClassNotFoundException {
-        GiraphJob job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.setVertexClass(SimpleMsgVertex.class);
-        job.setVertexInputFormatClass(SimpleSuperstepVertexInputFormat.class);
-        assertTrue(job.run(true));
-    }
-
-
-    /**
-     * Run a sample BSP job locally with no vertices and make sure
-     * it completes.
-     *
-     * @throws IOException
-     * @throws ClassNotFoundException
-     * @throws InterruptedException
-     */
-    public void testEmptyVertexInputFormat()
-            throws IOException, InterruptedException, ClassNotFoundException {
-        GiraphJob job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.getConfiguration().setLong(GeneratedVertexReader.READER_VERTICES,
-                                       0);
-        job.setVertexClass(SimpleMsgVertex.class);
-        job.setVertexInputFormatClass(SimpleSuperstepVertexInputFormat.class);
-        assertTrue(job.run(true));
-    }
-
-    /**
-     * Run a sample BSP job locally with combiner and checkout output value.
-     *
-     * @throws IOException
-     * @throws ClassNotFoundException
-     * @throws InterruptedException
-     */
-    public void testBspCombiner()
-            throws IOException, InterruptedException, ClassNotFoundException {
-        GiraphJob job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.setVertexClass(SimpleCombinerVertex.class);
-        job.setVertexInputFormatClass(SimpleSuperstepVertexInputFormat.class);
-        job.setVertexCombinerClass(SimpleSumCombiner.class);
-        assertTrue(job.run(true));
-    }
-
-    /**
-     * Run a sample BSP job locally and test PageRank.
-     *
-     * @throws IOException
-     * @throws ClassNotFoundException
-     * @throws InterruptedException
-     */
-    public void testBspPageRank()
-            throws IOException, InterruptedException, ClassNotFoundException {
-        GiraphJob job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.setVertexClass(SimplePageRankVertex.class);
-        job.setWorkerContextClass(
-        	SimplePageRankVertex.SimplePageRankVertexWorkerContext.class);
-        job.setVertexInputFormatClass(SimplePageRankVertexInputFormat.class);
-        assertTrue(job.run(true));
-        if (getJobTracker() == null) {
-            double maxPageRank =
-            	SimplePageRankVertex.SimplePageRankVertexWorkerContext.finalMax;
-            double minPageRank =
-            	SimplePageRankVertex.SimplePageRankVertexWorkerContext.finalMin;
-            long numVertices =
-            	SimplePageRankVertex.SimplePageRankVertexWorkerContext.finalSum;
-            System.out.println("testBspPageRank: maxPageRank=" + maxPageRank +
-                               " minPageRank=" + minPageRank +
-                               " numVertices=" + numVertices);
-            assertTrue("34.030 !< " + maxPageRank + " !< " + " 34.0301",
-                maxPageRank > 34.030 && maxPageRank < 34.0301);
-            assertTrue("0.03 !< " + minPageRank + " !< " + "0.03001",
-                minPageRank > 0.03 && minPageRank < 0.03001);
-            assertTrue("numVertices = " + numVertices + " != 5", numVertices == 5);
-        }
-    }
-
-    /**
-     * Run a sample BSP job locally and test shortest paths.
-     *
-     * @throws IOException
-     * @throws ClassNotFoundException
-     * @throws InterruptedException
-     */
-    public void testBspShortestPaths()
-            throws IOException, InterruptedException, ClassNotFoundException {
-        GiraphJob job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.setVertexClass(SimpleShortestPathsVertex.class);
-        job.setVertexInputFormatClass(SimplePageRankVertexInputFormat.class);
-        job.setVertexOutputFormatClass(
-            SimpleShortestPathsVertexOutputFormat.class);
-        job.getConfiguration().setLong(SimpleShortestPathsVertex.SOURCE_ID, 0);
-        Path outputPath = new Path("/tmp/" + getCallingMethodName());
-        removeAndSetOutput(job, outputPath);
-        assertTrue(job.run(true));
-
-        job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.setVertexClass(SimpleShortestPathsVertex.class);
-        job.setVertexInputFormatClass(SimplePageRankVertexInputFormat.class);
-        job.setVertexOutputFormatClass(
-            SimpleShortestPathsVertexOutputFormat.class);
-        job.getConfiguration().setLong(SimpleShortestPathsVertex.SOURCE_ID, 0);
-        Path outputPath2 = new Path("/tmp/" + getCallingMethodName() + "2");
-        removeAndSetOutput(job, outputPath2);
-        assertTrue(job.run(true));
-        if (getJobTracker() == null) {
-            FileStatus fileStatus = getSinglePartFileStatus(job, outputPath);
-            FileStatus fileStatus2 = getSinglePartFileStatus(job, outputPath2);
-            assertTrue(fileStatus.getLen() == fileStatus2.getLen());
-        }
-    }
-
-    /**
-     * Run a sample BSP job locally and test PageRank with AggregatorWriter.
-     *
-     * @throws IOException
-     * @throws ClassNotFoundException
-     * @throws InterruptedException
-     */
-    public void testBspPageRankWithAggregatorWriter()
-            throws IOException, InterruptedException, ClassNotFoundException {
-        GiraphJob job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.setVertexClass(SimplePageRankVertex.class);
-        job.setWorkerContextClass(
-            SimplePageRankVertex.SimplePageRankVertexWorkerContext.class);
-        job.setVertexInputFormatClass(SimplePageRankVertexInputFormat.class);
-        job.setAggregatorWriterClass(SimpleAggregatorWriter.class);
-        Path outputPath = new Path("/tmp/" + getCallingMethodName());
-        removeAndSetOutput(job, outputPath);
-        assertTrue(job.run(true));
-        if (getJobTracker() == null) {
-            double maxPageRank =
-                SimplePageRankVertex.SimplePageRankVertexWorkerContext.finalMax;
-            double minPageRank =
-                SimplePageRankVertex.SimplePageRankVertexWorkerContext.finalMin;
-            long numVertices =
-                SimplePageRankVertex.SimplePageRankVertexWorkerContext.finalSum;
-            System.out.println("testBspPageRank: maxPageRank=" + maxPageRank +
-                               " minPageRank=" + minPageRank +
-                               " numVertices=" + numVertices);
-            FileSystem fs = FileSystem.get(new Configuration());
-            FSDataInputStream input =
-                fs.open(new Path(SimpleAggregatorWriter.filename));
-            int i, all;
-            for (i = 0; ; i++) {
-                all = 0;
-                try {
-                    DoubleWritable max = new DoubleWritable();
-                    max.readFields(input);
-                    all++;
-                    DoubleWritable min = new DoubleWritable();
-                    min.readFields(input);
-                    all++;
-                    LongWritable sum = new LongWritable();
-                    sum.readFields(input);
-                    all++;
-                    if (i > 0) {
-                        assertTrue(max.get() == maxPageRank);
-                        assertTrue(min.get() == minPageRank);
-                        assertTrue(sum.get() == numVertices);
-                    }
-                } catch (IOException e) {
-                    break;
-                }
-            }
-            input.close();
-            // contained all supersteps
-            assertTrue(i == SimplePageRankVertex.MAX_SUPERSTEPS+1 && all == 0);
-            remove(new Configuration(),
-                   new Path(SimpleAggregatorWriter.filename));
+          DoubleWritable max = new DoubleWritable();
+          max.readFields(input);
+          all++;
+          DoubleWritable min = new DoubleWritable();
+          min.readFields(input);
+          all++;
+          LongWritable sum = new LongWritable();
+          sum.readFields(input);
+          all++;
+          if (i > 0) {
+            assertTrue(max.get() == maxPageRank);
+            assertTrue(min.get() == minPageRank);
+            assertTrue(sum.get() == numVertices);
+          }
+        } catch (IOException e) {
+          break;
         }
+      }
+      input.close();
+      // contained all supersteps
+      assertTrue(i == SimplePageRankVertex.MAX_SUPERSTEPS+1 && all == 0);
+      remove(new Configuration(),
+          new Path(SimpleAggregatorWriter.getFilename()));
     }
+  }
 }

Modified: incubator/giraph/trunk/src/test/java/org/apache/giraph/TestJsonBase64Format.java
URL: http://svn.apache.org/viewvc/incubator/giraph/trunk/src/test/java/org/apache/giraph/TestJsonBase64Format.java?rev=1245205&r1=1245204&r2=1245205&view=diff
==============================================================================
--- incubator/giraph/trunk/src/test/java/org/apache/giraph/TestJsonBase64Format.java (original)
+++ incubator/giraph/trunk/src/test/java/org/apache/giraph/TestJsonBase64Format.java Thu Feb 16 22:12:31 2012
@@ -21,6 +21,7 @@ package org.apache.giraph;
 import java.io.IOException;
 
 import org.apache.giraph.benchmark.PageRankBenchmark;
+import org.apache.giraph.benchmark.PageRankComputation;
 import org.apache.giraph.benchmark.PseudoRandomVertexInputFormat;
 import org.apache.giraph.graph.GiraphJob;
 import org.apache.giraph.lib.JsonBase64VertexInputFormat;
@@ -36,80 +37,80 @@ import junit.framework.TestSuite;
  * Test out the JsonBase64 format.
  */
 public class TestJsonBase64Format extends BspCase {
-    /**
-     * Create the test case
-     *
-     * @param testName name of the test case
-     */
-    public TestJsonBase64Format(String testName) {
-        super(testName);
+  /**
+   * Create the test case
+   *
+   * @param testName name of the test case
+   */
+  public TestJsonBase64Format(String testName) {
+    super(testName);
+  }
+
+  /**
+   * @return the suite of tests being tested
+   */
+  public static Test suite() {
+    return new TestSuite(TestJsonBase64Format.class);
+  }
+
+  /**
+   * Start a job and finish after i supersteps, then begin a new job and
+   * continue on more j supersteps.  Check the results against a single job
+   * with i + j supersteps.
+   *
+   * @throws IOException
+   * @throws ClassNotFoundException
+   * @throws InterruptedException
+   */
+  public void testContinue()
+    throws IOException, InterruptedException, ClassNotFoundException {
+    GiraphJob job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.setVertexClass(PageRankBenchmark.class);
+    job.setVertexInputFormatClass(PseudoRandomVertexInputFormat.class);
+    job.setVertexOutputFormatClass(JsonBase64VertexOutputFormat.class);
+    job.getConfiguration().setLong(
+        PseudoRandomVertexInputFormat.AGGREGATE_VERTICES, 101);
+    job.getConfiguration().setLong(
+        PseudoRandomVertexInputFormat.EDGES_PER_VERTEX, 2);
+    job.getConfiguration().setInt(PageRankComputation.SUPERSTEP_COUNT, 2);
+    Path outputPath = new Path("/tmp/" + getCallingMethodName());
+    removeAndSetOutput(job, outputPath);
+    assertTrue(job.run(true));
+
+    job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.setVertexClass(PageRankBenchmark.class);
+    job.setVertexInputFormatClass(JsonBase64VertexInputFormat.class);
+    job.setVertexOutputFormatClass(JsonBase64VertexOutputFormat.class);
+    job.getConfiguration().setInt(PageRankComputation.SUPERSTEP_COUNT, 3);
+    FileInputFormat.setInputPaths(job, outputPath);
+    Path outputPath2 = new Path("/tmp/" + getCallingMethodName() + "2");
+    removeAndSetOutput(job, outputPath2);
+    assertTrue(job.run(true));
+
+    FileStatus twoJobsFile = null;
+    if (getJobTracker() == null) {
+      twoJobsFile = getSinglePartFileStatus(job, outputPath);
     }
 
-    /**
-     * @return the suite of tests being tested
-     */
-    public static Test suite() {
-        return new TestSuite(TestJsonBase64Format.class);
-    }
-
-    /**
-     * Start a job and finish after i supersteps, then begin a new job and
-     * continue on more j supersteps.  Check the results against a single job
-     * with i + j supersteps.
-     *
-     * @throws IOException
-     * @throws ClassNotFoundException
-     * @throws InterruptedException
-     */
-    public void testContinue()
-            throws IOException, InterruptedException, ClassNotFoundException {
-        GiraphJob job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.setVertexClass(PageRankBenchmark.class);
-        job.setVertexInputFormatClass(PseudoRandomVertexInputFormat.class);
-        job.setVertexOutputFormatClass(JsonBase64VertexOutputFormat.class);
-        job.getConfiguration().setLong(
-            PseudoRandomVertexInputFormat.AGGREGATE_VERTICES, 101);
-        job.getConfiguration().setLong(
-            PseudoRandomVertexInputFormat.EDGES_PER_VERTEX, 2);
-        job.getConfiguration().setInt(PageRankBenchmark.SUPERSTEP_COUNT, 2);
-        Path outputPath = new Path("/tmp/" + getCallingMethodName());
-        removeAndSetOutput(job, outputPath);
-        assertTrue(job.run(true));
-
-        job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.setVertexClass(PageRankBenchmark.class);
-        job.setVertexInputFormatClass(JsonBase64VertexInputFormat.class);
-        job.setVertexOutputFormatClass(JsonBase64VertexOutputFormat.class);
-        job.getConfiguration().setInt(PageRankBenchmark.SUPERSTEP_COUNT, 3);
-        FileInputFormat.setInputPaths(job, outputPath);
-        Path outputPath2 = new Path("/tmp/" + getCallingMethodName() + "2");
-        removeAndSetOutput(job, outputPath2);
-        assertTrue(job.run(true));
-
-        FileStatus twoJobsFile = null;
-        if (getJobTracker() == null) {
-            twoJobsFile = getSinglePartFileStatus(job, outputPath);
-        }
-
-        job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.setVertexClass(PageRankBenchmark.class);
-        job.setVertexInputFormatClass(PseudoRandomVertexInputFormat.class);
-        job.setVertexOutputFormatClass(JsonBase64VertexOutputFormat.class);
-        job.getConfiguration().setLong(
-            PseudoRandomVertexInputFormat.AGGREGATE_VERTICES, 101);
-        job.getConfiguration().setLong(
-            PseudoRandomVertexInputFormat.EDGES_PER_VERTEX, 2);
-        job.getConfiguration().setInt(PageRankBenchmark.SUPERSTEP_COUNT, 5);
-        Path outputPath3 = new Path("/tmp/" + getCallingMethodName() + "3");
-        removeAndSetOutput(job, outputPath3);
-        assertTrue(job.run(true));
-
-        if (getJobTracker() == null) {
-            FileStatus oneJobFile = getSinglePartFileStatus(job, outputPath3);
-            assertTrue(twoJobsFile.getLen() == oneJobFile.getLen());
-        }
+    job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.setVertexClass(PageRankBenchmark.class);
+    job.setVertexInputFormatClass(PseudoRandomVertexInputFormat.class);
+    job.setVertexOutputFormatClass(JsonBase64VertexOutputFormat.class);
+    job.getConfiguration().setLong(
+        PseudoRandomVertexInputFormat.AGGREGATE_VERTICES, 101);
+    job.getConfiguration().setLong(
+        PseudoRandomVertexInputFormat.EDGES_PER_VERTEX, 2);
+    job.getConfiguration().setInt(PageRankComputation.SUPERSTEP_COUNT, 5);
+    Path outputPath3 = new Path("/tmp/" + getCallingMethodName() + "3");
+    removeAndSetOutput(job, outputPath3);
+    assertTrue(job.run(true));
+
+    if (getJobTracker() == null) {
+      FileStatus oneJobFile = getSinglePartFileStatus(job, outputPath3);
+      assertTrue(twoJobsFile.getLen() == oneJobFile.getLen());
     }
+  }
 }

Modified: incubator/giraph/trunk/src/test/java/org/apache/giraph/TestManualCheckpoint.java
URL: http://svn.apache.org/viewvc/incubator/giraph/trunk/src/test/java/org/apache/giraph/TestManualCheckpoint.java?rev=1245205&r1=1245204&r2=1245205&view=diff
==============================================================================
--- incubator/giraph/trunk/src/test/java/org/apache/giraph/TestManualCheckpoint.java (original)
+++ incubator/giraph/trunk/src/test/java/org/apache/giraph/TestManualCheckpoint.java Thu Feb 16 22:12:31 2012
@@ -33,88 +33,88 @@ import junit.framework.TestSuite;
  * Unit test for manual checkpoint restarting
  */
 public class TestManualCheckpoint extends BspCase {
-    /** Where the checkpoints will be stored and restarted */
-    private final String HDFS_CHECKPOINT_DIR =
-        "/tmp/testBspCheckpoints";
+  /** Where the checkpoints will be stored and restarted */
+  private final String HDFS_CHECKPOINT_DIR =
+      "/tmp/testBspCheckpoints";
 
-    /**
-     * Create the test case
-     *
-     * @param testName name of the test case
-     */
-    public TestManualCheckpoint(String testName) {
-        super(testName);
-    }
+  /**
+   * Create the test case
+   *
+   * @param testName name of the test case
+   */
+  public TestManualCheckpoint(String testName) {
+    super(testName);
+  }
 
-    /**
-     * @return the suite of tests being tested
-     */
-    public static Test suite() {
-        return new TestSuite(TestManualCheckpoint.class);
-    }
+  /**
+   * @return the suite of tests being tested
+   */
+  public static Test suite() {
+    return new TestSuite(TestManualCheckpoint.class);
+  }
 
-    /**
-     * Run a sample BSP job locally and test checkpointing.
-     * @throws IOException
-     * @throws ClassNotFoundException
-     * @throws InterruptedException
-     */
-    public void testBspCheckpoint()
-            throws IOException, InterruptedException, ClassNotFoundException {
-        GiraphJob job = new GiraphJob(getCallingMethodName());
-        setupConfiguration(job);
-        job.getConfiguration().set(GiraphJob.CHECKPOINT_DIRECTORY,
-                                   HDFS_CHECKPOINT_DIR);
-        job.getConfiguration().setBoolean(
-            GiraphJob.CLEANUP_CHECKPOINTS_AFTER_SUCCESS, false);
-        job.setVertexClass(SimpleCheckpointVertex.class);
-        job.setWorkerContextClass(
-            SimpleCheckpointVertex.SimpleCheckpointVertexWorkerContext.class);
-        job.setVertexInputFormatClass(SimpleSuperstepVertexInputFormat.class);
-        job.setVertexOutputFormatClass(SimpleSuperstepVertexOutputFormat.class);
-        Path outputPath = new Path("/tmp/" + getCallingMethodName());
-        removeAndSetOutput(job, outputPath);
-        assertTrue(job.run(true));
-        long fileLen = 0;
-        long idSum = 0;
-        if (getJobTracker() == null) {
-            FileStatus fileStatus = getSinglePartFileStatus(job, outputPath);
-            fileLen = fileStatus.getLen();
-            idSum =
-            	SimpleCheckpointVertex.SimpleCheckpointVertexWorkerContext.finalSum;
-            System.out.println("testBspCheckpoint: idSum = " + idSum +
-                               " fileLen = " + fileLen);
-        }
+  /**
+   * Run a sample BSP job locally and test checkpointing.
+   * @throws IOException
+   * @throws ClassNotFoundException
+   * @throws InterruptedException
+   */
+  public void testBspCheckpoint()
+      throws IOException, InterruptedException, ClassNotFoundException {
+    GiraphJob job = new GiraphJob(getCallingMethodName());
+    setupConfiguration(job);
+    job.getConfiguration().set(GiraphJob.CHECKPOINT_DIRECTORY,
+        HDFS_CHECKPOINT_DIR);
+    job.getConfiguration().setBoolean(
+        GiraphJob.CLEANUP_CHECKPOINTS_AFTER_SUCCESS, false);
+    job.setVertexClass(SimpleCheckpointVertex.class);
+    job.setWorkerContextClass(
+        SimpleCheckpointVertex.SimpleCheckpointVertexWorkerContext.class);
+    job.setVertexInputFormatClass(SimpleSuperstepVertexInputFormat.class);
+    job.setVertexOutputFormatClass(SimpleSuperstepVertexOutputFormat.class);
+    Path outputPath = new Path("/tmp/" + getCallingMethodName());
+    removeAndSetOutput(job, outputPath);
+    assertTrue(job.run(true));
+    long fileLen = 0;
+    long idSum = 0;
+    if (getJobTracker() == null) {
+      FileStatus fileStatus = getSinglePartFileStatus(job, outputPath);
+      fileLen = fileStatus.getLen();
+      idSum =
+          SimpleCheckpointVertex.SimpleCheckpointVertexWorkerContext.getFinalSum();
+      System.out.println("testBspCheckpoint: idSum = " + idSum +
+          " fileLen = " + fileLen);
+    }
 
-        // Restart the test from superstep 2
-        System.out.println(
-            "testBspCheckpoint: Restarting from superstep 2" +
+    // Restart the test from superstep 2
+    System.out.println(
+        "testBspCheckpoint: Restarting from superstep 2" +
             " with checkpoint path = " + HDFS_CHECKPOINT_DIR);
-        GiraphJob restartedJob = new GiraphJob(getCallingMethodName() +
-                                               "Restarted");
-        setupConfiguration(restartedJob);
-        restartedJob.getConfiguration().set(GiraphJob.CHECKPOINT_DIRECTORY,
-                                            HDFS_CHECKPOINT_DIR);
-        restartedJob.getConfiguration().setLong(GiraphJob.RESTART_SUPERSTEP, 2);
-        restartedJob.setVertexClass(SimpleCheckpointVertex.class);
-        restartedJob.setWorkerContextClass(
-        	SimpleCheckpointVertex.SimpleCheckpointVertexWorkerContext.class);
-        restartedJob.setVertexInputFormatClass(
-            SimpleSuperstepVertexInputFormat.class);
-        restartedJob.setVertexOutputFormatClass(
-            SimpleSuperstepVertexOutputFormat.class);
-        outputPath = new Path("/tmp/" + getCallingMethodName() + "Restarted");
-        removeAndSetOutput(restartedJob, outputPath);
-        assertTrue(restartedJob.run(true));
-        if (getJobTracker() == null) {
-            FileStatus fileStatus = getSinglePartFileStatus(job, outputPath);
-            fileLen = fileStatus.getLen();
-            assertTrue(fileStatus.getLen() == fileLen);
-            long idSumRestarted =
-            	SimpleCheckpointVertex.SimpleCheckpointVertexWorkerContext.finalSum;
-            System.out.println("testBspCheckpoint: idSumRestarted = " +
-                               idSumRestarted);
-            assertTrue(idSum == idSumRestarted);
-        }
+    GiraphJob restartedJob = new GiraphJob(getCallingMethodName() +
+        "Restarted");
+    setupConfiguration(restartedJob);
+    restartedJob.getConfiguration().set(GiraphJob.CHECKPOINT_DIRECTORY,
+        HDFS_CHECKPOINT_DIR);
+    restartedJob.getConfiguration().setLong(GiraphJob.RESTART_SUPERSTEP, 2);
+    restartedJob.setVertexClass(SimpleCheckpointVertex.class);
+    restartedJob.setWorkerContextClass(
+        SimpleCheckpointVertex.SimpleCheckpointVertexWorkerContext.class);
+    restartedJob.setVertexInputFormatClass(
+        SimpleSuperstepVertexInputFormat.class);
+    restartedJob.setVertexOutputFormatClass(
+        SimpleSuperstepVertexOutputFormat.class);
+    outputPath = new Path("/tmp/" + getCallingMethodName() + "Restarted");
+    removeAndSetOutput(restartedJob, outputPath);
+    assertTrue(restartedJob.run(true));
+    if (getJobTracker() == null) {
+      FileStatus fileStatus = getSinglePartFileStatus(job, outputPath);
+      fileLen = fileStatus.getLen();
+      assertTrue(fileStatus.getLen() == fileLen);
+      long idSumRestarted =
+          SimpleCheckpointVertex.SimpleCheckpointVertexWorkerContext.getFinalSum();
+      System.out.println("testBspCheckpoint: idSumRestarted = " +
+          idSumRestarted);
+      assertTrue(idSum == idSumRestarted);
     }
+  }
 }

Modified: incubator/giraph/trunk/src/test/java/org/apache/giraph/examples/SimpleShortestPathVertexTest.java
URL: http://svn.apache.org/viewvc/incubator/giraph/trunk/src/test/java/org/apache/giraph/examples/SimpleShortestPathVertexTest.java?rev=1245205&r1=1245204&r2=1245205&view=diff
==============================================================================
--- incubator/giraph/trunk/src/test/java/org/apache/giraph/examples/SimpleShortestPathVertexTest.java (original)
+++ incubator/giraph/trunk/src/test/java/org/apache/giraph/examples/SimpleShortestPathVertexTest.java Thu Feb 16 22:12:31 2012
@@ -38,110 +38,111 @@ import java.util.Map;
  */
 public class SimpleShortestPathVertexTest extends TestCase {
 
-    /**
-     * Test the behavior when a shorter path to a vertex has been found
-     */
-    public void testOnShorterPathFound() throws Exception {
-
-        SimpleShortestPathsVertex vertex = new SimpleShortestPathsVertex();
-        vertex.initialize(null, null, null, null);
-        vertex.addEdge(new LongWritable(10L), new FloatWritable(2.5f));
-        vertex.addEdge(new LongWritable(20L), new FloatWritable(0.5f));
-
-        MockUtils.MockedEnvironment<LongWritable, DoubleWritable, FloatWritable,
-                DoubleWritable> env = MockUtils.prepareVertex(vertex, 1L,
-                new LongWritable(7L), new DoubleWritable(Double.MAX_VALUE),
-                false);
-
-        Mockito.when(env.getConfiguration().getLong(
-                SimpleShortestPathsVertex.SOURCE_ID,
-                SimpleShortestPathsVertex.SOURCE_ID_DEFAULT)).thenReturn(2L);
-
-        vertex.compute(Lists.newArrayList(new DoubleWritable(2),
-                new DoubleWritable(1.5)).iterator());
-
-        assertTrue(vertex.isHalted());
-        assertEquals(1.5, vertex.getVertexValue().get());
-
-        env.verifyMessageSent(new LongWritable(10L), new DoubleWritable(4));
-        env.verifyMessageSent(new LongWritable(20L), new DoubleWritable(2));
-    }
-
-    /**
-     * Test the behavior when a new, but not shorter path to a vertex has been found
-     */
-    public void testOnNoShorterPathFound() throws Exception {
-
-        SimpleShortestPathsVertex vertex = new SimpleShortestPathsVertex();
-        vertex.initialize(null, null, null, null);
-        vertex.addEdge(new LongWritable(10L), new FloatWritable(2.5f));
-        vertex.addEdge(new LongWritable(20L), new FloatWritable(0.5f));
-
-        MockUtils.MockedEnvironment<LongWritable, DoubleWritable, FloatWritable,
-                DoubleWritable> env = MockUtils.prepareVertex(vertex, 1L,
-                new LongWritable(7L), new DoubleWritable(0.5), false);
-
-        Mockito.when(env.getConfiguration().getLong(
-                SimpleShortestPathsVertex.SOURCE_ID,
-                SimpleShortestPathsVertex.SOURCE_ID_DEFAULT)).thenReturn(2L);
-
-        vertex.compute(Lists.newArrayList(new DoubleWritable(2),
-                new DoubleWritable(1.5)).iterator());
-
-        assertTrue(vertex.isHalted());
-        assertEquals(0.5, vertex.getVertexValue().get());
-
-        env.verifyNoMessageSent();
-    }
-
-    /**
-     * A local integration test on toy data
-     */
-    public void testToyData() throws Exception {
-
-        // a small four vertex graph
-        String[] graph = new String[] {
-                "[1,0,[[2,1],[3,3]]]",
-                "[2,0,[[3,1],[4,10]]]",
-                "[3,0,[[4,2]]]",
-                "[4,0,[]]" };
-
-        // start from vertex 1
-        Map<String, String> params = Maps.newHashMap();
-        params.put(SimpleShortestPathsVertex.SOURCE_ID, "1");
-
-        // run internally
-        Iterable<String> results = InternalVertexRunner.run(
-                SimpleShortestPathsVertex.class,
-                SimpleShortestPathsVertex.
-                        SimpleShortestPathsVertexInputFormat.class,
-                SimpleShortestPathsVertex.
-                        SimpleShortestPathsVertexOutputFormat.class,
-                params, graph);
-
-        Map<Long, Double> distances = parseDistances(results);
-
-        // verify results
-        assertNotNull(distances);
-        assertEquals(4, distances.size());
-        assertEquals(0.0, distances.get(1L));
-        assertEquals(1.0, distances.get(2L));
-        assertEquals(2.0, distances.get(3L));
-        assertEquals(4.0, distances.get(4L));
-    }
-
-    private Map<Long, Double> parseDistances(Iterable<String> results) {
-        Map<Long, Double> distances =
-                Maps.newHashMapWithExpectedSize(Iterables.size(results));
-        for (String line : results) {
-            try {
-                JSONArray jsonVertex = new JSONArray(line);
-                distances.put(jsonVertex.getLong(0), jsonVertex.getDouble(1));
-            } catch (JSONException e) {
-                throw new IllegalArgumentException(
-                    "Couldn't get vertex from line " + line, e);
-            }
-        }
-        return distances;
+  /**
+   * Test the behavior when a shorter path to a vertex has been found
+   */
+  public void testOnShorterPathFound() throws Exception {
+
+    SimpleShortestPathsVertex vertex = new SimpleShortestPathsVertex();
+    vertex.initialize(null, null, null, null);
+    vertex.addEdge(new LongWritable(10L), new FloatWritable(2.5f));
+    vertex.addEdge(new LongWritable(20L), new FloatWritable(0.5f));
+
+    MockUtils.MockedEnvironment<LongWritable, DoubleWritable, FloatWritable,
+    DoubleWritable> env = MockUtils.prepareVertex(vertex, 1L,
+        new LongWritable(7L), new DoubleWritable(Double.MAX_VALUE),
+        false);
+
+    Mockito.when(env.getConfiguration().getLong(
+        SimpleShortestPathsVertex.SOURCE_ID,
+        SimpleShortestPathsVertex.SOURCE_ID_DEFAULT)).thenReturn(2L);
+
+    vertex.compute(Lists.newArrayList(new DoubleWritable(2),
+        new DoubleWritable(1.5)).iterator());
+
+    assertTrue(vertex.isHalted());
+    assertEquals(1.5, vertex.getVertexValue().get());
+
+    env.verifyMessageSent(new LongWritable(10L), new DoubleWritable(4));
+    env.verifyMessageSent(new LongWritable(20L), new DoubleWritable(2));
+  }
+
+  /**
+   * Test the behavior when a new, but not shorter path to a vertex has been
+   * found.
+   */
+  public void testOnNoShorterPathFound() throws Exception {
+
+    SimpleShortestPathsVertex vertex = new SimpleShortestPathsVertex();
+    vertex.initialize(null, null, null, null);
+    vertex.addEdge(new LongWritable(10L), new FloatWritable(2.5f));
+    vertex.addEdge(new LongWritable(20L), new FloatWritable(0.5f));
+
+    MockUtils.MockedEnvironment<LongWritable, DoubleWritable, FloatWritable,
+    DoubleWritable> env = MockUtils.prepareVertex(vertex, 1L,
+        new LongWritable(7L), new DoubleWritable(0.5), false);
+
+    Mockito.when(env.getConfiguration().getLong(
+        SimpleShortestPathsVertex.SOURCE_ID,
+        SimpleShortestPathsVertex.SOURCE_ID_DEFAULT)).thenReturn(2L);
+
+    vertex.compute(Lists.newArrayList(new DoubleWritable(2),
+        new DoubleWritable(1.5)).iterator());
+
+    assertTrue(vertex.isHalted());
+    assertEquals(0.5, vertex.getVertexValue().get());
+
+    env.verifyNoMessageSent();
+  }
+
+  /**
+   * A local integration test on toy data
+   */
+  public void testToyData() throws Exception {
+
+    // a small four vertex graph
+    String[] graph = new String[] {
+        "[1,0,[[2,1],[3,3]]]",
+        "[2,0,[[3,1],[4,10]]]",
+        "[3,0,[[4,2]]]",
+    "[4,0,[]]" };
+
+    // start from vertex 1
+    Map<String, String> params = Maps.newHashMap();
+    params.put(SimpleShortestPathsVertex.SOURCE_ID, "1");
+
+    // run internally
+    Iterable<String> results = InternalVertexRunner.run(
+        SimpleShortestPathsVertex.class,
+        SimpleShortestPathsVertex.
+        SimpleShortestPathsVertexInputFormat.class,
+        SimpleShortestPathsVertex.
+        SimpleShortestPathsVertexOutputFormat.class,
+        params, graph);
+
+    Map<Long, Double> distances = parseDistances(results);
+
+    // verify results
+    assertNotNull(distances);
+    assertEquals(4, distances.size());
+    assertEquals(0.0, distances.get(1L));
+    assertEquals(1.0, distances.get(2L));
+    assertEquals(2.0, distances.get(3L));
+    assertEquals(4.0, distances.get(4L));
+  }
+
+  private Map<Long, Double> parseDistances(Iterable<String> results) {
+    Map<Long, Double> distances =
+        Maps.newHashMapWithExpectedSize(Iterables.size(results));
+    for (String line : results) {
+      try {
+        JSONArray jsonVertex = new JSONArray(line);
+        distances.put(jsonVertex.getLong(0), jsonVertex.getDouble(1));
+      } catch (JSONException e) {
+        throw new IllegalArgumentException(
+            "Couldn't get vertex from line " + line, e);
+      }
     }
+    return distances;
+  }
 }

Modified: incubator/giraph/trunk/src/test/java/org/apache/giraph/graph/TestEdgeListVertex.java
URL: http://svn.apache.org/viewvc/incubator/giraph/trunk/src/test/java/org/apache/giraph/graph/TestEdgeListVertex.java?rev=1245205&r1=1245204&r2=1245205&view=diff
==============================================================================
--- incubator/giraph/trunk/src/test/java/org/apache/giraph/graph/TestEdgeListVertex.java (original)
+++ incubator/giraph/trunk/src/test/java/org/apache/giraph/graph/TestEdgeListVertex.java Thu Feb 16 22:12:31 2012
@@ -41,136 +41,134 @@ import java.util.Map;
  * Tests {@link EdgeListVertex}.
  */
 public class TestEdgeListVertex extends TestCase {
-    /** Instantiated vertex filled in from setup() */
-    private IFDLEdgeListVertex vertex;
-    /** Job filled in by setup() */
-    private GiraphJob job;
-
-    /**
-     * Simple instantiable class that extends {@link EdgeArrayVertex}.
-     */
-    private static class IFDLEdgeListVertex extends
-            EdgeListVertex<IntWritable, FloatWritable, DoubleWritable,
-            LongWritable> {
-
-        @Override
-        public void compute(Iterator<LongWritable> msgIterator)
-                throws IOException {
-        }
-    }
-
+  /** Instantiated vertex filled in from setup() */
+  private IFDLEdgeListVertex vertex;
+  /** Job filled in by setup() */
+  private GiraphJob job;
+
+  /**
+   * Simple instantiable class that extends {@link EdgeArrayVertex}.
+   */
+  private static class IFDLEdgeListVertex extends
+      EdgeListVertex<IntWritable, FloatWritable, DoubleWritable,
+      LongWritable> {
     @Override
-    public void setUp() {
-        try {
-            job = new GiraphJob("TestEdgeArrayVertex");
-        } catch (IOException e) {
-            throw new RuntimeException("setUp: Failed", e);
-        }
-        job.setVertexClass(IFDLEdgeListVertex.class);
-        job.getConfiguration().setClass(GiraphJob.VERTEX_INDEX_CLASS,
-            IntWritable.class, WritableComparable.class);
-        job.getConfiguration().setClass(GiraphJob.VERTEX_VALUE_CLASS,
-            FloatWritable.class, Writable.class);
-        job.getConfiguration().setClass(GiraphJob.EDGE_VALUE_CLASS,
-            DoubleWritable.class, Writable.class);
-        job.getConfiguration().setClass(GiraphJob.MESSAGE_VALUE_CLASS,
-            LongWritable.class, Writable.class);
-        vertex = (IFDLEdgeListVertex)
-            BspUtils.<IntWritable, FloatWritable, DoubleWritable, LongWritable>
-            createVertex(job.getConfiguration());
-    }
-
-    public void testInstantiate() throws IOException {
-        assertNotNull(vertex);
-    }
-
-    public void testEdges() {
-        Map<IntWritable, DoubleWritable> edgeMap = Maps.newHashMap();
-        for (int i = 1000; i > 0; --i) {
-            edgeMap.put(new IntWritable(i), new DoubleWritable(i * 2.0));
-        }
-        vertex.initialize(null, null, edgeMap, null);
-        assertEquals(vertex.getNumOutEdges(), 1000);
-        int expectedIndex = 1;
-        for (IntWritable index : vertex) {
-            assertEquals(index.get(), expectedIndex);
-            assertEquals(vertex.getEdgeValue(index).get(),
-                         expectedIndex * 2.0d);
-            ++expectedIndex;
-        }
-        assertEquals(vertex.removeEdge(new IntWritable(500)),
-                     new DoubleWritable(1000));
-        assertEquals(vertex.getNumOutEdges(), 999);
-    }
-
-    public void testGetEdges() {
-        Map<IntWritable, DoubleWritable> edgeMap = Maps.newHashMap();
-        for (int i = 1000; i > 0; --i) {
-            edgeMap.put(new IntWritable(i), new DoubleWritable(i * 3.0));
-        }
-        vertex.initialize(null, null, edgeMap, null);
-        assertEquals(vertex.getNumOutEdges(), 1000);
-        assertEquals(vertex.getEdgeValue(new IntWritable(600)),
-                     new DoubleWritable(600 * 3.0));
-        assertEquals(vertex.removeEdge(new IntWritable(600)),
-                     new DoubleWritable(600 * 3.0));
-        assertEquals(vertex.getNumOutEdges(), 999);
-        assertEquals(vertex.getEdgeValue(new IntWritable(500)),
-                     new DoubleWritable(500 * 3.0));
-        assertEquals(vertex.getEdgeValue(new IntWritable(700)),
-                     new DoubleWritable(700 * 3.0));
-    }
-
-    public void testAddRemoveEdges() {
-        Map<IntWritable, DoubleWritable> edgeMap = Maps.newHashMap();
-        vertex.initialize(null, null, edgeMap, null);
-        assertEquals(vertex.getNumOutEdges(), 0);
-        assertTrue(vertex.addEdge(new IntWritable(2),
-                                  new DoubleWritable(2.0)));
-        assertEquals(vertex.getNumOutEdges(), 1);
-        assertEquals(vertex.getEdgeValue(new IntWritable(2)),
-                                         new DoubleWritable(2.0));
-        assertTrue(vertex.addEdge(new IntWritable(4),
-                                 new DoubleWritable(4.0)));
-        assertTrue(vertex.addEdge(new IntWritable(3),
-                                  new DoubleWritable(3.0)));
-        assertTrue(vertex.addEdge(new IntWritable(1),
-                                  new DoubleWritable(1.0)));
-        assertEquals(vertex.getNumOutEdges(), 4);
-        assertNull(vertex.getEdgeValue(new IntWritable(5)));
-        assertNull(vertex.getEdgeValue(new IntWritable(0)));
-        int i = 1;
-        for (IntWritable edgeDestId : vertex) {
-            assertEquals(i, edgeDestId.get());
-            assertEquals(i * 1.0d, vertex.getEdgeValue(edgeDestId).get());
-            ++i;
-        }
-        assertNotNull(vertex.removeEdge(new IntWritable(1)));
-        assertEquals(vertex.getNumOutEdges(), 3);
-        assertNotNull(vertex.removeEdge(new IntWritable(3)));
-        assertEquals(vertex.getNumOutEdges(), 2);
-        assertNotNull(vertex.removeEdge(new IntWritable(2)));
-        assertEquals(vertex.getNumOutEdges(), 1);
-        assertNotNull(vertex.removeEdge(new IntWritable(4)));
-        assertEquals(vertex.getNumOutEdges(), 0);
-    }
-
-
-    public void testSerialize() {
-        Map<IntWritable, DoubleWritable> edgeMap = Maps.newHashMap();
-        for (int i = 1000; i > 0; --i) {
-            edgeMap.put(new IntWritable(i), new DoubleWritable(i * 2.0));
-        }
-        List<LongWritable> messageList = Lists.newArrayList();
-        messageList.add(new LongWritable(4));
-        messageList.add(new LongWritable(5));
-        vertex.initialize(
-            new IntWritable(2), new FloatWritable(3.0f), edgeMap, messageList);
-        byte[] byteArray = WritableUtils.writeToByteArray(vertex);
-        IFDLEdgeListVertex readVertex = (IFDLEdgeListVertex)
-            BspUtils.<IntWritable, FloatWritable, DoubleWritable, LongWritable>
-            createVertex(job.getConfiguration());
-        WritableUtils.readFieldsFromByteArray(byteArray, readVertex);
-        assertEquals(vertex, readVertex);
+    public void compute(Iterator<LongWritable> msgIterator)
+      throws IOException {
     }
+  }
+
+  @Override
+  public void setUp() {
+    try {
+      job = new GiraphJob("TestEdgeArrayVertex");
+    } catch (IOException e) {
+      throw new RuntimeException("setUp: Failed", e);
+    }
+    job.setVertexClass(IFDLEdgeListVertex.class);
+    job.getConfiguration().setClass(GiraphJob.VERTEX_INDEX_CLASS,
+        IntWritable.class, WritableComparable.class);
+    job.getConfiguration().setClass(GiraphJob.VERTEX_VALUE_CLASS,
+        FloatWritable.class, Writable.class);
+    job.getConfiguration().setClass(GiraphJob.EDGE_VALUE_CLASS,
+        DoubleWritable.class, Writable.class);
+    job.getConfiguration().setClass(GiraphJob.MESSAGE_VALUE_CLASS,
+        LongWritable.class, Writable.class);
+    vertex = (IFDLEdgeListVertex)
+      BspUtils.<IntWritable, FloatWritable, DoubleWritable, LongWritable>
+      createVertex(job.getConfiguration());
+  }
+
+  public void testInstantiate() throws IOException {
+    assertNotNull(vertex);
+  }
+
+  public void testEdges() {
+    Map<IntWritable, DoubleWritable> edgeMap = Maps.newHashMap();
+    for (int i = 1000; i > 0; --i) {
+      edgeMap.put(new IntWritable(i), new DoubleWritable(i * 2.0));
+    }
+    vertex.initialize(null, null, edgeMap, null);
+    assertEquals(vertex.getNumOutEdges(), 1000);
+    int expectedIndex = 1;
+    for (IntWritable index : vertex) {
+      assertEquals(index.get(), expectedIndex);
+      assertEquals(vertex.getEdgeValue(index).get(),
+          expectedIndex * 2.0d);
+      ++expectedIndex;
+    }
+    assertEquals(vertex.removeEdge(new IntWritable(500)),
+        new DoubleWritable(1000));
+    assertEquals(vertex.getNumOutEdges(), 999);
+  }
+
+  public void testGetEdges() {
+    Map<IntWritable, DoubleWritable> edgeMap = Maps.newHashMap();
+    for (int i = 1000; i > 0; --i) {
+      edgeMap.put(new IntWritable(i), new DoubleWritable(i * 3.0));
+    }
+    vertex.initialize(null, null, edgeMap, null);
+    assertEquals(vertex.getNumOutEdges(), 1000);
+    assertEquals(vertex.getEdgeValue(new IntWritable(600)),
+        new DoubleWritable(600 * 3.0));
+    assertEquals(vertex.removeEdge(new IntWritable(600)),
+        new DoubleWritable(600 * 3.0));
+    assertEquals(vertex.getNumOutEdges(), 999);
+    assertEquals(vertex.getEdgeValue(new IntWritable(500)),
+        new DoubleWritable(500 * 3.0));
+    assertEquals(vertex.getEdgeValue(new IntWritable(700)),
+        new DoubleWritable(700 * 3.0));
+  }
+
+  public void testAddRemoveEdges() {
+    Map<IntWritable, DoubleWritable> edgeMap = Maps.newHashMap();
+    vertex.initialize(null, null, edgeMap, null);
+    assertEquals(vertex.getNumOutEdges(), 0);
+    assertTrue(vertex.addEdge(new IntWritable(2),
+        new DoubleWritable(2.0)));
+    assertEquals(vertex.getNumOutEdges(), 1);
+    assertEquals(vertex.getEdgeValue(new IntWritable(2)),
+        new DoubleWritable(2.0));
+    assertTrue(vertex.addEdge(new IntWritable(4),
+        new DoubleWritable(4.0)));
+    assertTrue(vertex.addEdge(new IntWritable(3),
+        new DoubleWritable(3.0)));
+    assertTrue(vertex.addEdge(new IntWritable(1),
+        new DoubleWritable(1.0)));
+    assertEquals(vertex.getNumOutEdges(), 4);
+    assertNull(vertex.getEdgeValue(new IntWritable(5)));
+    assertNull(vertex.getEdgeValue(new IntWritable(0)));
+    int i = 1;
+    for (IntWritable edgeDestId : vertex) {
+      assertEquals(i, edgeDestId.get());
+      assertEquals(i * 1.0d, vertex.getEdgeValue(edgeDestId).get());
+      ++i;
+    }
+    assertNotNull(vertex.removeEdge(new IntWritable(1)));
+    assertEquals(vertex.getNumOutEdges(), 3);
+    assertNotNull(vertex.removeEdge(new IntWritable(3)));
+    assertEquals(vertex.getNumOutEdges(), 2);
+    assertNotNull(vertex.removeEdge(new IntWritable(2)));
+    assertEquals(vertex.getNumOutEdges(), 1);
+    assertNotNull(vertex.removeEdge(new IntWritable(4)));
+    assertEquals(vertex.getNumOutEdges(), 0);
+  }
+
+  public void testSerialize() {
+    Map<IntWritable, DoubleWritable> edgeMap = Maps.newHashMap();
+    for (int i = 1000; i > 0; --i) {
+      edgeMap.put(new IntWritable(i), new DoubleWritable(i * 2.0));
+    }
+    List<LongWritable> messageList = Lists.newArrayList();
+    messageList.add(new LongWritable(4));
+    messageList.add(new LongWritable(5));
+    vertex.initialize(
+        new IntWritable(2), new FloatWritable(3.0f), edgeMap, messageList);
+    byte[] byteArray = WritableUtils.writeToByteArray(vertex);
+    IFDLEdgeListVertex readVertex = (IFDLEdgeListVertex)
+      BspUtils.<IntWritable, FloatWritable, DoubleWritable, LongWritable>
+      createVertex(job.getConfiguration());
+    WritableUtils.readFieldsFromByteArray(byteArray, readVertex);
+    assertEquals(vertex, readVertex);
+  }
 }

Modified: incubator/giraph/trunk/src/test/java/org/apache/giraph/utils/MockUtils.java
URL: http://svn.apache.org/viewvc/incubator/giraph/trunk/src/test/java/org/apache/giraph/utils/MockUtils.java?rev=1245205&r1=1245204&r2=1245205&view=diff
==============================================================================
--- incubator/giraph/trunk/src/test/java/org/apache/giraph/utils/MockUtils.java (original)
+++ incubator/giraph/trunk/src/test/java/org/apache/giraph/utils/MockUtils.java Thu Feb 16 22:12:31 2012
@@ -44,7 +44,7 @@ public class MockUtils {
     public static class MockedEnvironment<I extends WritableComparable,
             V extends Writable, E extends Writable, M extends Writable> {
 
-        private final GraphState graphState;
+        private final GraphState<I, V, E, M> graphState;
         private final Mapper.Context context;
         private final Configuration conf;
         private final WorkerCommunications communications;

Modified: incubator/giraph/trunk/src/test/java/zk/TestZooKeeperManager.java
URL: http://svn.apache.org/viewvc/incubator/giraph/trunk/src/test/java/zk/TestZooKeeperManager.java?rev=1245205&r1=1245204&r2=1245205&view=diff
==============================================================================
--- incubator/giraph/trunk/src/test/java/zk/TestZooKeeperManager.java (original)
+++ incubator/giraph/trunk/src/test/java/zk/TestZooKeeperManager.java Thu Feb 16 22:12:31 2012
@@ -31,7 +31,8 @@ public class TestZooKeeperManager extend
         "", ZooKeeperManager.getBasePath(conf));
 
     conf.set(GiraphJob.BASE_ZNODE_KEY, "/howdy");
-    assertEquals("Base path should reflect value of " + GiraphJob.BASE_ZNODE_KEY,
+    assertEquals("Base path should reflect value of " +
+        GiraphJob.BASE_ZNODE_KEY,
         "/howdy", ZooKeeperManager.getBasePath(conf));
 
     conf.set(GiraphJob.BASE_ZNODE_KEY, "no_slash");