diff options
| author | Ben Culkin <scorpress@gmail.com> | 2020-11-15 12:29:56 -0500 |
|---|---|---|
| committer | Ben Culkin <scorpress@gmail.com> | 2020-11-15 12:32:12 -0500 |
| commit | b60ab8e8524b21a48b2440c346b1dd0c6ccc2d85 (patch) | |
| tree | ead7a7864c7ae92b2b8a2db729a0b745854be416 /src/test/java/bjc/esodata | |
| parent | 0805c271505340c1da60a1b8920560bae73f21a9 (diff) | |
Add MinMaxList data type
This is a list wrapper that automatically tracks the minimum/maximum
element currently in the list
Diffstat (limited to 'src/test/java/bjc/esodata')
| -rw-r--r-- | src/test/java/bjc/esodata/MinMaxListTest.java | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/test/java/bjc/esodata/MinMaxListTest.java b/src/test/java/bjc/esodata/MinMaxListTest.java new file mode 100644 index 0000000..08901f0 --- /dev/null +++ b/src/test/java/bjc/esodata/MinMaxListTest.java @@ -0,0 +1,52 @@ +package bjc.esodata; + +import static org.junit.Assert.*; + +import java.util.*; + +import org.junit.*; + +@SuppressWarnings("javadoc") +public class MinMaxListTest { + private final static Comparator<Integer> intComparator = (lhs, rhs) -> lhs - rhs;; + + @Test + public void minMaxListInitializesMinMax() { + MinMaxList<Integer> list = new MinMaxList<>(intComparator, + 1, 2, 3, 4, 5); + + assertEquals("List contains 5 elements", 5, list.size()); + + assertEquals("Minimum is 1", 1, (int)list.minimum()); + assertEquals("Maximum is 5", 5, (int)list.maximum()); + } + + @Test + public void minMaxListAddUpdatesMinMax() { + MinMaxList<Integer> list = new MinMaxList<>(intComparator, + 2, 3, 4); + + assertEquals("Minimum is 2", 2, (int)list.minimum()); + assertEquals("Maximum is 4", 4, (int)list.maximum()); + + list.add(1); + list.add(5); + + assertEquals("Minimum is 1", 1, (int)list.minimum()); + assertEquals("Maximum is 5", 5, (int)list.maximum()); + } + + public void minMaxListRemoveUpdatesMinMax() { + MinMaxList<Integer> list = new MinMaxList<>(intComparator, + 1, 2, 3, 4, 5); + + assertEquals("Minimum is 1", 1, (int)list.minimum()); + assertEquals("Maximum is 5", 5, (int)list.maximum()); + + list.remove((Integer)1); + list.remove((Integer)5); + + assertEquals("Minimum is 2", 2, (int)list.minimum()); + assertEquals("Maximum is 4", 4, (int)list.maximum()); + } +} |
