1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.giraph.edge;
20
21 import com.google.common.collect.Lists;
22 import org.apache.hadoop.io.DoubleWritable;
23 import org.apache.hadoop.io.LongWritable;
24 import org.junit.Before;
25 import org.junit.Test;
26
27 import java.util.Collection;
28 import java.util.List;
29
30 import static org.apache.giraph.graph.TestVertexAndEdges.instantiateOutEdges;
31 import static org.junit.Assert.assertEquals;
32 import static org.junit.Assert.assertNull;
33
34
35
36
37 public class TestStrictRandomAccessEdges {
38
39 private Collection<Class<? extends StrictRandomAccessOutEdges>>
40 edgesClasses = Lists.newArrayList();
41
42 @Before
43 public void setUp() {
44 edgesClasses.add(HashMapEdges.class);
45 edgesClasses.add(LongDoubleHashMapEdges.class);
46 }
47
48
49
50
51
52 @Test
53 public void testParallelEdges() {
54 for (Class<? extends StrictRandomAccessOutEdges> edgesClass :
55 edgesClasses) {
56 testParallelEdgesClass(edgesClass);
57 }
58 }
59
60 private void testParallelEdgesClass(
61 Class<? extends StrictRandomAccessOutEdges> edgesClass) {
62 StrictRandomAccessOutEdges<LongWritable, DoubleWritable> edges =
63 (StrictRandomAccessOutEdges<LongWritable, DoubleWritable>)
64 instantiateOutEdges(edgesClass);
65
66
67 List<Edge<LongWritable, DoubleWritable>> initialEdges = Lists.newArrayList(
68 EdgeFactory.create(new LongWritable(1), new DoubleWritable(1)),
69 EdgeFactory.create(new LongWritable(2), new DoubleWritable(2)),
70 EdgeFactory.create(new LongWritable(3), new DoubleWritable(3)),
71 EdgeFactory.create(new LongWritable(2), new DoubleWritable(20)));
72
73 edges.initialize(initialEdges);
74
75 assertEquals(3.0, edges.getEdgeValue(new LongWritable(3)).get(), 0.0);
76 assertNull(edges.getEdgeValue(new LongWritable(55)));
77
78 edges.setEdgeValue(new LongWritable(2), new DoubleWritable(33.0));
79 assertEquals(33.0, edges.getEdgeValue(new LongWritable(2)).get(), 0);
80 }
81 }