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.sparse;
20
21 import static org.junit.Assert.assertEquals;
22
23 import org.apache.giraph.utils.WritableUtils;
24 import org.junit.Test;
25
26 public class TestFloatSparseMatrix {
27 private static float E = 0.0001f;
28
29 @Test
30 public void testVectorAdd() {
31
32 FloatSparseVector vec1 = new FloatSparseVector();
33 assertEquals(0.0, vec1.get(0), E);
34
35
36 vec1.set(0, 0.1f);
37 vec1.set(10, 1.4f);
38 assertEquals(0.1, vec1.get(0), E);
39 assertEquals(0.0, vec1.get(5), E);
40 assertEquals(1.4, vec1.get(10), E);
41
42
43 FloatSparseVector vec2 = new FloatSparseVector();
44 vec2.set(0, 0.5f);
45 vec2.set(5, 1.7f);
46
47 vec1.add(vec2);
48 assertEquals(0.6, vec1.get(0), E);
49 assertEquals(1.7, vec1.get(5), E);
50 assertEquals(1.4, vec1.get(10), E);
51 assertEquals(0.0, vec1.get(15), E);
52 }
53
54 @Test
55 public void testVectorSerialize() throws Exception {
56 int size = 100;
57
58
59 FloatSparseVector from = new FloatSparseVector(size);
60 from.set(0, 10.0f);
61 from.set(10, 5.0f);
62 from.set(12, 1.0f);
63 byte[] data = WritableUtils.writeToByteArray(from);
64
65
66 FloatSparseVector to = new FloatSparseVector();
67 WritableUtils.readFieldsFromByteArray(data, to);
68
69
70 for (int i = 0; i < size; ++i) {
71 assertEquals(from.get(i), to.get(i), E);
72 }
73 }
74 }