1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.giraph.aggregators.matrix.dense;
20
21 import org.apache.giraph.aggregators.matrix.dense.IntDenseVector;
22 import static org.junit.Assert.assertEquals;
23
24 import org.apache.giraph.utils.WritableUtils;
25 import org.junit.Test;
26
27 public class TestIntDenseMatrix {
28
29 @Test
30 public void testVectorSingleton() {
31 IntDenseVector vec1 = new IntDenseVector(10);
32 vec1.set(0, 0);
33 vec1.set(6, 14);
34
35 IntDenseVector vec2 = new IntDenseVector();
36 vec2.setSingleton(6, 10);
37 vec1.add(vec2);
38 assertEquals(24, vec1.get(6));
39
40 vec2.setSingleton(15, 15);
41 vec1.add(vec2);
42 assertEquals(15, vec1.get(15));
43 }
44
45 @Test
46 public void testVectorAdd() {
47
48 IntDenseVector vec1 = new IntDenseVector(10);
49 assertEquals(0, vec1.get(0));
50
51
52 vec1.set(0, 1);
53 vec1.set(6, 14);
54 assertEquals(1, vec1.get(0));
55 assertEquals(0, vec1.get(4));
56 assertEquals(14, vec1.get(6));
57 assertEquals(0, vec1.get(15));
58
59
60 IntDenseVector vec2 = new IntDenseVector(20);
61 vec2.set(0, 5);
62 vec2.set(5, 17);
63
64 vec1.add(vec2);
65 assertEquals(6, vec1.get(0));
66 assertEquals(17, vec1.get(5));
67 assertEquals(14, vec1.get(6));
68 assertEquals(0, vec1.get(15));
69 }
70
71 @Test
72 public void testVectorSerialize() throws Exception {
73 int size = 100;
74
75
76 IntDenseVector from = new IntDenseVector(size);
77 from.set(0, 100);
78 from.set(10, 50);
79 from.set(12, 10);
80 byte[] data = WritableUtils.writeToByteArray(from, from);
81
82
83 IntDenseVector to1 = new IntDenseVector();
84 IntDenseVector to2 = new IntDenseVector();
85 WritableUtils.readFieldsFromByteArray(data, to1, to2);
86
87
88 for (int i = 0; i < size; ++i) {
89 assertEquals(from.get(i), to1.get(i));
90 assertEquals(from.get(i), to2.get(i));
91 }
92 }
93
94 @Test
95 public void testVectorSerializeSingleton() throws Exception {
96 IntDenseVector from = new IntDenseVector();
97 from.setSingleton(3, 100);
98
99 byte[] data = WritableUtils.writeToByteArray(from, from);
100
101 IntDenseVector to1 = new IntDenseVector();
102 IntDenseVector to2 = new IntDenseVector();
103 WritableUtils.readFieldsFromByteArray(data, to1, to2);
104
105 assertEquals(from.getSingletonIndex(), to1.getSingletonIndex());
106 assertEquals(from.getSingletonIndex(), to2.getSingletonIndex());
107 assertEquals(from.getSingletonValue(), to2.getSingletonValue());
108 assertEquals(from.getSingletonValue(), to2.getSingletonValue());
109 }
110 }