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.LongDenseVector;
22 import static org.junit.Assert.assertEquals;
23
24 import org.apache.giraph.utils.WritableUtils;
25 import org.junit.Test;
26
27 public class TestLongDenseMatrix {
28
29 @Test
30 public void testVectorSingleton() {
31 LongDenseVector vec1 = new LongDenseVector(10);
32 vec1.set(0, 1);
33 vec1.set(6, 14);
34
35 LongDenseVector vec2 = new LongDenseVector();
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 LongDenseVector vec1 = new LongDenseVector(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 LongDenseVector vec2 = new LongDenseVector(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 LongDenseVector from = new LongDenseVector(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 LongDenseVector to1 = new LongDenseVector();
84 LongDenseVector to2 = new LongDenseVector();
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 LongDenseVector from = new LongDenseVector();
97 from.setSingleton(3, 10);
98
99 byte[] data = WritableUtils.writeToByteArray(from, from);
100
101 LongDenseVector to1 = new LongDenseVector();
102 LongDenseVector to2 = new LongDenseVector();
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 }