From fb7d3fe8f49a896fc10af06f9ea2a095c85161c1 Mon Sep 17 00:00:00 2001 From: Tomasz Lelek Date: Mon, 17 Jul 2017 06:10:55 +0200 Subject: [PATCH] Bael 1010 hll (#2274) * BAEL-1010 HLL article code * BAEL-1010 moved tolerated difference to a variable * Merge branch 'master' of https://github.com/eugenp/tutorials into BAEL-1010_hll # Conflicts: # libraries/pom.xml * BAEL-1010 clearer code * use isCloseTo --- .../java/com/baeldung/hll/HLLUnitTest.java | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/libraries/src/test/java/com/baeldung/hll/HLLUnitTest.java b/libraries/src/test/java/com/baeldung/hll/HLLUnitTest.java index 2745e1e681..8d09c99f0f 100644 --- a/libraries/src/test/java/com/baeldung/hll/HLLUnitTest.java +++ b/libraries/src/test/java/com/baeldung/hll/HLLUnitTest.java @@ -4,6 +4,7 @@ package com.baeldung.hll; import com.google.common.hash.HashFunction; import com.google.common.hash.Hashing; import net.agkn.hll.HLL; +import org.assertj.core.data.Offset; import org.junit.Test; import java.util.stream.LongStream; @@ -15,8 +16,8 @@ public class HLLUnitTest { @Test public void givenHLL_whenAddHugeAmountOfNumbers_thenShouldReturnEstimatedCardinality() { //given - int numberOfElements = 100_000_000; - int toleratedDifference = 1_000_000; + long numberOfElements = 100_000_000; + long toleratedDifference = 1_000_000; HashFunction hashFunction = Hashing.murmur3_128(); HLL hll = new HLL(14, 5); @@ -29,14 +30,14 @@ public class HLLUnitTest { //then long cardinality = hll.cardinality(); - assertThat(isSimilarTo(cardinality, numberOfElements, toleratedDifference)).isTrue(); + assertThat(cardinality).isCloseTo(numberOfElements, Offset.offset(toleratedDifference)); } @Test public void givenTwoHLLs_whenAddHugeAmountOfNumbers_thenShouldReturnEstimatedCardinalityForUnionOfHLLs() { //given - int numberOfElements = 100_000_000; - int toleratedDifference = 1_000_000; + long numberOfElements = 100_000_000; + long toleratedDifference = 1_000_000; HashFunction hashFunction = Hashing.murmur3_128(); HLL firstHll = new HLL(15, 5); HLL secondHLL = new HLL(15, 5); @@ -57,12 +58,6 @@ public class HLLUnitTest { //then firstHll.union(secondHLL); long cardinality = firstHll.cardinality(); - assertThat(isSimilarTo(cardinality, numberOfElements * 2, - toleratedDifference * 2)).isTrue(); - } - - private boolean isSimilarTo(long cardinality, int numberOfElements, int maxToleratedDifference) { - System.out.println(cardinality); - return Math.abs(cardinality - numberOfElements) <= maxToleratedDifference; + assertThat(cardinality).isCloseTo(numberOfElements * 2, Offset.offset(toleratedDifference * 2)); } }