-
Notifications
You must be signed in to change notification settings - Fork 0
/
ElementsMapWritableTest.java
90 lines (74 loc) · 3.17 KB
/
ElementsMapWritableTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package net.gregorybringman.elementsreduce.types;
import org.apache.hadoop.io.Text;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
/**
* Tests the {@link ElementsMapWritable} class.
*
* @author Gregory Bringman
*
*/
public class ElementsMapWritableTest {
private final Text key = new Text("key");
private final Text key2 = new Text("key2");
private final ElementsStringArrayWritable value =
new ElementsStringArrayWritable(new String[] { "1-2", "4-6" });
private final ElementsStringArrayWritable value2 =
new ElementsStringArrayWritable(new String[] { "1-6", "7-15" });
private ElementsMapWritable mapWritable;
private ElementsMapWritable identical;
private ElementsMapWritable identical2;
private ElementsMapWritable different;
private ElementsMapWritable different2;
@Before
public void setUp() {
mapWritable = new ElementsMapWritable();
identical = new ElementsMapWritable();
identical2 = new ElementsMapWritable();
different = new ElementsMapWritable();
different2 = new ElementsMapWritable();
mapWritable.put(key, value);
identical.put(key, value);
identical2.put(key, value);
different.put(key, value2);
different2.put(key2, value2);
}
/*
* Test that hash codes of identical {@link ElementsMapWritable} objects are
* equal and that hash codes of different {@link ElementsMapWritable}
* objects are not equal.
*/
@Test
public void hashcode() {
// Transitive, reflexive, symmetric, blah, blah, blah....
Assert.assertTrue(mapWritable.hashCode() == identical.hashCode());
Assert.assertTrue(identical.hashCode() == mapWritable.hashCode());
Assert.assertTrue(mapWritable.hashCode() == mapWritable.hashCode());
Assert.assertTrue(mapWritable.hashCode() == identical.hashCode()
&& identical.hashCode() == identical2.hashCode());
Assert.assertFalse(mapWritable.hashCode() == different.hashCode());
Assert.assertFalse(mapWritable.hashCode() == 0);
Assert.assertFalse(mapWritable.hashCode() == new String().hashCode());
}
/*
* Test that the equals method evaluates to {@link Boolean.TRUE} when two
* {@link ElementsMapWritable} instances are equal, to {@link Boolean.FALSE}
*/
@Test
public void equals() {
// Transitive, reflexive, symmetric, blah, blah, blah....
Assert.assertTrue(mapWritable.equals(identical));
Assert.assertTrue(identical.equals(mapWritable));
Assert.assertTrue(mapWritable.equals(mapWritable));
Assert.assertTrue(mapWritable.equals(identical) && identical.equals(identical2));
Assert.assertFalse(mapWritable.equals(different));
Assert.assertFalse(mapWritable.equals(null));
Assert.assertFalse(mapWritable.equals(new String()));
Assert.assertFalse(mapWritable.equals(different2));
ElementsStringArrayWritable extraValue = new ElementsStringArrayWritable(
new String[] { "3-6", "7-14" });
different2.put(key, extraValue);
Assert.assertFalse(mapWritable.equals(different2));
}
}