@Test @Category(UnitTest.class) public void testDouble() { double[] values = {0.21, 0.32, 0.32, 0.54}; double nodata = Double.NaN; double result; Aggregator agg = new ModeAggregator(); //Test normal case result = agg.aggregate(values, nodata); assertEquals(0.32, result, epsilon); //Test nodata cases values[0] = nodata; result = agg.aggregate(values, nodata); assertEquals(0.32, result, epsilon); values[1] = nodata; result = agg.aggregate(values, nodata); assertThat((double) result, AnyOf.anyOf(IsCloseTo.closeTo(0.32f, epsilon), IsCloseTo.closeTo(0.54f, epsilon))); values[2] = nodata; result = agg.aggregate(values, nodata); assertEquals(0.54, result, epsilon); values[3] = nodata; result = agg.aggregate(values, nodata); assertEquals(nodata, result, epsilon); }
@Test @Category(UnitTest.class) public void testFloat() { float[] values = {0.21f, 0.32f, 0.32f, 0.54f}; float nodata = -9999.0f; float result; Aggregator agg = new ModeAggregator(); //Test normal case result = agg.aggregate(values, nodata); assertEquals(0.32, result, epsilon); //Test nodata cases values[0] = nodata; result = agg.aggregate(values, nodata); assertEquals(0.32, result, epsilon); values[1] = nodata; result = agg.aggregate(values, nodata); //assertEquals(0.54, result, epsilon); assertThat((double) result, AnyOf.anyOf(IsCloseTo.closeTo(0.32f, epsilon), IsCloseTo.closeTo(0.54f, epsilon))); values[2] = nodata; result = agg.aggregate(values, nodata); assertEquals(0.54, result, epsilon); values[3] = nodata; result = agg.aggregate(values, nodata); assertEquals(nodata, result, epsilon); }
@Test public void testCalcRecordSimilarityInBlock_manyItems() throws Exception { Integer recordId = 21; List<String> mockedList = PowerMockito.mock(List.class); Map<Integer, List<String>> map = Maps.newHashMap(ImmutableMap.of(21, mockedList, 22, mockedList, 2, mockedList, 4, mockedList, 1, mockedList)); SimilarityCalculator similarityCalculator = PowerMockito.mock(SimilarityCalculator.class); PowerMockito.when(similarityCalculator.calcRecordsSim(Mockito.anyList(), Mockito.anyList())).thenReturn(0.5F, 0.4F, 0F, 0.6F); float recordProbability = ClusterSimilarity.calcRecordSimilarityInCluster(recordId, map, similarityCalculator); MatcherAssert.assertThat((double) recordProbability, IsCloseTo.closeTo(1.5F, 0.001)); }
@Test public void shouldHaveMedianValuesAround10() throws Exception { new JavaTestKit(testActorSystem) {{ ActorRef myTimedActor = getSystem().actorOf(Props.create(MyTimedActor.class, metricRegistry)); sendMessages(myTimedActor); expectNoMsg(duration("55 ms")); String key = metricRegistry.getTimers().firstKey(); long medianInNano = (long) metricRegistry.getTimers().get(key).getSnapshot().getMean(); assertThat((double) TimeUnit.NANOSECONDS.toMillis(medianInNano), IsCloseTo.closeTo(10d, 2d)); }}; }
public IsNumberCloseTo(double value, double error) { this.closeTo = new IsCloseTo(value, error); }