From 29825bf89a082bafadbc5c26c869966cd2c29c93 Mon Sep 17 00:00:00 2001 From: Muhammed Almas Date: Sun, 22 Jan 2017 19:40:21 +0530 Subject: [PATCH] BAEL-590 Test for RangeMap (#1032) * BAL-36 File size api in java and apache commons IO * BAEL-282 grep in java - fixes after code review * BAEL-519 Added support for disruptor library * BAEL-519 Added support for disruptor library * BAEL-519 Added support for disruptor library * BAEL-519 Added support for disruptor library * BAEL-519 Added support for disruptor library * BAEL-519 Added support for disruptor library * BAEL-519 Added support for disruptor * BAEL-519 Moved all supporting classes to main source * BAEL-519 Moved all supporting classes to main source * BAEL-519 Moved asserts and test classes in test folder. * BAEL-519 moved test related producer and consumer to src. * BAEL-586 Guide to Guava BiMap. * BAEL-587 formatted code. * BAEL-519 LMAX Disruptor * BAEL-587 resolved merge * BAEL-587 Resolved merge * BAEL-519 Removed disruptor link. * BAEL-519 Reverted Guava changes * RFQ-587 Added disruptor as a separate module. * BAEL-519 Disruptor changes. * BAEL-519 Removed disruptor from core-java module. * BAEL-590 Added test to support RangeMap. --- .../org/baeldung/guava/GuavaRangeMapTest.java | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 guava/src/test/java/org/baeldung/guava/GuavaRangeMapTest.java diff --git a/guava/src/test/java/org/baeldung/guava/GuavaRangeMapTest.java b/guava/src/test/java/org/baeldung/guava/GuavaRangeMapTest.java new file mode 100644 index 0000000000..e74acc5d25 --- /dev/null +++ b/guava/src/test/java/org/baeldung/guava/GuavaRangeMapTest.java @@ -0,0 +1,120 @@ +package org.baeldung.guava; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import java.util.Map; +import org.junit.Test; +import com.google.common.collect.ImmutableRangeMap; +import com.google.common.collect.Range; +import com.google.common.collect.RangeMap; +import com.google.common.collect.TreeRangeMap; + +public class GuavaRangeMapTest { + + @Test + public void givenRangeMap_whenQueryWithinRange_returnsSucessfully() { + final RangeMap experienceRangeDesignationMap = TreeRangeMap.create(); + + experienceRangeDesignationMap.put(Range.closed(0, 2), "Associate"); + experienceRangeDesignationMap.put(Range.closed(3, 5), "Senior Associate"); + experienceRangeDesignationMap.put(Range.closed(6, 8), "Vice President"); + experienceRangeDesignationMap.put(Range.closed(9, 15), "Executive Director"); + experienceRangeDesignationMap.put(Range.closed(16, 30), "Managing Director"); + + assertEquals("Vice President", experienceRangeDesignationMap.get(6)); + assertEquals("Executive Director", experienceRangeDesignationMap.get(15)); + } + + @Test + public void givenRangeMap_whenQueryOutsideRange_returnsNull() { + final RangeMap experienceRangeDesignationMap = TreeRangeMap.create(); + + experienceRangeDesignationMap.put(Range.closed(0, 2), "Associate"); + experienceRangeDesignationMap.put(Range.closed(3, 5), "Senior Associate"); + experienceRangeDesignationMap.put(Range.closed(6, 8), "Vice President"); + experienceRangeDesignationMap.put(Range.closed(9, 15), "Executive Director"); + experienceRangeDesignationMap.put(Range.closed(16, 30), "Managing Director"); + + assertNull(experienceRangeDesignationMap.get(31)); + } + + @Test + public void givenRangeMap_whenRemoveRangeIsCalled_removesSucessfully() { + final RangeMap experienceRangeDesignationMap = TreeRangeMap.create(); + + experienceRangeDesignationMap.put(Range.closed(0, 2), "Associate"); + experienceRangeDesignationMap.put(Range.closed(3, 5), "Senior Associate"); + experienceRangeDesignationMap.put(Range.closed(6, 8), "Vice President"); + experienceRangeDesignationMap.put(Range.closed(9, 15), "Executive Director"); + experienceRangeDesignationMap.put(Range.closed(16, 30), "Managing Director"); + experienceRangeDesignationMap.remove(Range.closed(8, 15)); + experienceRangeDesignationMap.remove(Range.closed(20, 26)); + + assertNull(experienceRangeDesignationMap.get(9)); + assertEquals("Managing Director", experienceRangeDesignationMap.get(16)); + assertEquals("Managing Director", experienceRangeDesignationMap.get(30)); + assertNull(experienceRangeDesignationMap.get(25)); + } + + @Test + public void givenRangeMap_whenSpanIsCalled_returnsSucessfully() { + final RangeMap experienceRangeDesignationMap = TreeRangeMap.create(); + + experienceRangeDesignationMap.put(Range.closed(0, 2), "Associate"); + experienceRangeDesignationMap.put(Range.closed(3, 5), "Senior Associate"); + experienceRangeDesignationMap.put(Range.closed(6, 8), "Vice President"); + experienceRangeDesignationMap.put(Range.closed(9, 15), "Executive Director"); + experienceRangeDesignationMap.put(Range.closed(16, 30), "Managing Director"); + final Range experienceSpan = experienceRangeDesignationMap.span(); + + assertEquals(0, experienceSpan.lowerEndpoint().intValue()); + assertEquals(30, experienceSpan.upperEndpoint().intValue()); + } + + @Test + public void givenRangeMap_whenGetEntryIsCalled_returnsEntrySucessfully() { + final RangeMap experienceRangeDesignationMap = TreeRangeMap.create(); + + experienceRangeDesignationMap.put(Range.closed(0, 2), "Associate"); + experienceRangeDesignationMap.put(Range.closed(3, 5), "Senior Associate"); + experienceRangeDesignationMap.put(Range.closed(6, 8), "Vice President"); + experienceRangeDesignationMap.put(Range.closed(9, 15), "Executive Director"); + experienceRangeDesignationMap.put(Range.closed(20, 30), "Managing Director"); + final Map.Entry, String> experiencEntry = experienceRangeDesignationMap.getEntry(10); + + assertEquals(Range.closed(9, 15), experiencEntry.getKey()); + assertEquals("Executive Director", experiencEntry.getValue()); + } + + @Test + public void givenRangeMap_whenSubRangeMapIsCalled_returnsSubRangeSucessfully() { + final RangeMap experienceRangeDesignationMap = TreeRangeMap.create(); + + experienceRangeDesignationMap.put(Range.closed(0, 2), "Associate"); + experienceRangeDesignationMap.put(Range.closed(3, 5), "Senior Associate"); + experienceRangeDesignationMap.put(Range.closed(6, 8), "Vice President"); + experienceRangeDesignationMap.put(Range.closed(8, 15), "Executive Director"); + experienceRangeDesignationMap.put(Range.closed(16, 30), "Managing Director"); + final RangeMap experiencedSubRangeDesignationMap = experienceRangeDesignationMap.subRangeMap(Range.closed(4, 14)); + + assertNull(experiencedSubRangeDesignationMap.get(3)); + assertEquals("Executive Director", experiencedSubRangeDesignationMap.get(14)); + assertEquals("Vice President", experiencedSubRangeDesignationMap.get(7)); + } + + @Test + public void givenImmutableRangeMap_whenQueryWithinRange_returnsSucessfully() { + final RangeMap experienceRangeDesignationMap = ImmutableRangeMap. builder().put(Range.closed(0, 2), "Associate").put(Range.closed(3, 5), "Senior Associate").put(Range.closed(6, 8), "Vice President") + .put(Range.closed(9, 15), "Executive Director").put(Range.closed(16, 30), "Managing Director").build(); + + assertEquals("Vice President", experienceRangeDesignationMap.get(6)); + assertEquals("Executive Director", experienceRangeDesignationMap.get(15)); + } + + @Test(expected = IllegalArgumentException.class) + public void givenImmutableRangeMap_whenRangeOverlaps_ThrowsException() { + ImmutableRangeMap. builder().put(Range.closed(0, 2), "Associate").put(Range.closed(3, 5), "Senior Associate").put(Range.closed(6, 8), "Vice President") + .put(Range.closed(8, 15), "Executive Director").put(Range.closed(16, 30), "Managing Director").build(); + + } +}