use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.
the class HeapQuickSelectSketchTest method checkHeapifySeedConflict.
@Test(expectedExceptions = SketchesArgumentException.class)
public void checkHeapifySeedConflict() {
int k = 512;
long seed1 = 1021;
long seed2 = DEFAULT_UPDATE_SEED;
UpdateSketch usk = UpdateSketch.builder().setFamily(fam_).setSeed(seed1).setNominalEntries(k).build();
byte[] byteArray = usk.toByteArray();
Memory srcMem = Memory.wrap(byteArray);
Sketch.heapify(srcMem, seed2);
}
use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.
the class HeapQuickSelectSketchTest method checkHeapifyMemoryEstimating.
@Test
public void checkHeapifyMemoryEstimating() {
int k = 512;
int u = 2 * k;
long seed = DEFAULT_UPDATE_SEED;
boolean estimating = (u > k);
UpdateSketch sk1 = UpdateSketch.builder().setFamily(fam_).setSeed(seed).setNominalEntries(k).build();
for (int i = 0; i < u; i++) {
sk1.update(i);
}
double sk1est = sk1.getEstimate();
double sk1lb = sk1.getLowerBound(2);
double sk1ub = sk1.getUpperBound(2);
assertEquals(sk1.isEstimationMode(), estimating);
byte[] byteArray = sk1.toByteArray();
Memory mem = Memory.wrap(byteArray);
UpdateSketch sk2 = UpdateSketch.heapify(mem, DEFAULT_UPDATE_SEED);
assertEquals(sk2.getEstimate(), sk1est);
assertEquals(sk2.getLowerBound(2), sk1lb);
assertEquals(sk2.getUpperBound(2), sk1ub);
assertEquals(sk2.isEmpty(), false);
assertEquals(sk2.isEstimationMode(), estimating);
assertEquals(sk2.getClass().getSimpleName(), sk1.getClass().getSimpleName());
}
use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.
the class HeapifyWrapSerVer1and2Test method checkHeapifySketchGivenDefaultSeed.
@Test
public void checkHeapifySketchGivenDefaultSeed() {
final int k = 64;
final long seed = DEFAULT_UPDATE_SEED;
final short seedHash = Util.computeSeedHash(seed);
UpdateSketch sv3usk = UpdateSketch.builder().setNominalEntries(k).setSeed(seed).build();
for (int i = 0; i < k; i++) {
sv3usk.update(i);
}
CompactSketch sv3csk = sv3usk.compact();
Memory sv3cskMem = Memory.wrap(sv3csk.toByteArray());
CompactSketch sv3cskResult;
// SV3 test
sv3cskResult = (CompactSketch) Sketches.heapifySketch(sv3cskMem, seed);
assertEquals(sv3cskResult.getEstimate(), sv3usk.getEstimate());
assertEquals(sv3cskResult.getSeedHash(), seedHash);
// SV2 test
Memory sv2cskMem = BackwardConversions.convertSerVer3toSerVer2(sv3csk, seed);
sv3cskResult = (CompactSketch) Sketches.heapifySketch(sv2cskMem, seed);
assertEquals(sv3cskResult.getEstimate(), sv3usk.getEstimate());
assertEquals(sv3cskResult.getSeedHash(), seedHash);
// SV1 test
Memory sv1cskMem = BackwardConversions.convertSerVer3toSerVer1(sv3csk);
sv3cskResult = (CompactSketch) Sketches.heapifySketch(sv1cskMem, seed);
assertEquals(sv3cskResult.getEstimate(), sv3usk.getEstimate());
assertEquals(sv3cskResult.getSeedHash(), seedHash);
}
use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.
the class HeapifyWrapSerVer1and2Test method checkHeapifySketchAssumedDefaultSeed.
@Test
public void checkHeapifySketchAssumedDefaultSeed() {
final int k = 64;
final long seed = DEFAULT_UPDATE_SEED;
final short seedHash = Util.computeSeedHash(seed);
UpdateSketch sv3usk = UpdateSketch.builder().setNominalEntries(k).setSeed(seed).build();
for (int i = 0; i < k; i++) {
sv3usk.update(i);
}
CompactSketch sv3csk = sv3usk.compact();
Memory sv3cskMem = Memory.wrap(sv3csk.toByteArray());
CompactSketch sv3cskResult;
// SV3 test
sv3cskResult = (CompactSketch) Sketches.heapifySketch(sv3cskMem);
assertEquals(sv3cskResult.getEstimate(), sv3usk.getEstimate());
assertEquals(sv3cskResult.getSeedHash(), seedHash);
// SV2 test
Memory sv2cskMem = BackwardConversions.convertSerVer3toSerVer2(sv3csk, seed);
sv3cskResult = (CompactSketch) Sketches.heapifySketch(sv2cskMem);
assertEquals(sv3cskResult.getEstimate(), sv3usk.getEstimate());
assertEquals(sv3cskResult.getSeedHash(), seedHash);
// SV1 test
Memory sv1cskMem = BackwardConversions.convertSerVer3toSerVer1(sv3csk);
sv3cskResult = (CompactSketch) Sketches.heapifySketch(sv1cskMem);
assertEquals(sv3cskResult.getEstimate(), sv3usk.getEstimate());
assertEquals(sv3cskResult.getSeedHash(), seedHash);
}
use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.
the class HeapifyWrapSerVer1and2Test method checkHeapifySketchAssumedDifferentSeed.
@Test
public void checkHeapifySketchAssumedDifferentSeed() {
final int k = 64;
final long seed = 128L;
final short seedHash = Util.computeSeedHash(seed);
UpdateSketch sv3usk = UpdateSketch.builder().setNominalEntries(k).setSeed(seed).build();
for (int i = 0; i < k; i++) {
sv3usk.update(i);
}
CompactSketch sv3csk = sv3usk.compact();
Memory sv3cskMem = Memory.wrap(sv3csk.toByteArray());
CompactSketch sv3cskResult;
// SV3 test
sv3cskResult = (CompactSketch) Sketches.heapifySketch(sv3cskMem);
assertEquals(sv3cskResult.getEstimate(), sv3usk.getEstimate());
assertEquals(sv3cskResult.getSeedHash(), seedHash);
// SV2 test
Memory sv2cskMem = BackwardConversions.convertSerVer3toSerVer2(sv3csk, seed);
sv3cskResult = (CompactSketch) Sketches.heapifySketch(sv2cskMem);
assertEquals(sv3cskResult.getEstimate(), sv3usk.getEstimate());
assertEquals(sv3cskResult.getSeedHash(), seedHash);
// SV1 test
Memory sv1cskMem = BackwardConversions.convertSerVer3toSerVer1(sv3csk);
sv3cskResult = (CompactSketch) Sketches.heapifySketch(sv1cskMem);
assertEquals(sv3cskResult.getEstimate(), sv3usk.getEstimate());
assertEquals(sv3cskResult.getSeedHash(), defaultSeedHash);
}
Aggregations