use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.
the class CpcCBinariesTest method checkEmptyImages.
// Image checks
@Test
public void checkEmptyImages() {
final String fileName = "cpc-empty.sk";
final File file = getResourceFile(fileName);
try (MapHandle mh = Memory.map(file)) {
final Memory mem = mh.get();
final int cap = (int) mem.getCapacity();
final byte[] memByteArr = new byte[cap];
mem.getByteArray(0, memByteArr, 0, cap);
final CpcSketch sk = new CpcSketch(11);
final byte[] mem2ByteArr = sk.toByteArray();
final Memory mem2 = Memory.wrap(mem2ByteArr);
assertEquals(mem.getCapacity(), mem2.getCapacity());
assertEquals(memByteArr, mem2ByteArr);
} catch (final Exception e) {
e.printStackTrace();
}
}
use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.
the class CpcCBinariesTest method checkPinnedImages.
@Test
public void checkPinnedImages() {
final String fileName = "cpc-pinned.sk";
final File file = getResourceFile(fileName);
try (MapHandle mh = Memory.map(file)) {
final Memory mem = mh.get();
final int cap = (int) mem.getCapacity();
final byte[] cppMemByteArr = new byte[cap];
mem.getByteArray(0, cppMemByteArr, 0, cap);
final CpcSketch sk = new CpcSketch(11);
for (int i = 0; i < 2000; i++) {
sk.update(i);
}
final byte[] javaMemByteArr = sk.toByteArray();
final Memory mem2 = Memory.wrap(javaMemByteArr);
assertEquals(mem.getCapacity(), mem2.getCapacity());
assertEquals(cppMemByteArr, javaMemByteArr);
} catch (final Exception e) {
e.printStackTrace();
}
}
use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.
the class CpcCBinariesTest method checkPinnedBin.
@Test
public void checkPinnedBin() {
final String fileName = "cpc-pinned.sk";
final File file = getResourceFile(fileName);
try (MapHandle mh = Memory.map(file)) {
final Memory mem = mh.get();
println("CPP GENERATED SKETCH FROM BINARY FILE LgK=11, U0 to U1999");
println("PreambleUtil.toString(mem, true)" + LS);
println(PreambleUtil.toString(mem, true));
println(LS + LS + "################");
println("CpcSketch sk = CpcSketch.heapify(mem);");
println("sk.toString(true)" + LS);
final CpcSketch sk = CpcSketch.heapify(mem);
println(sk.toString(true));
assertEquals(sk.getFlavor(), Flavor.PINNED);
final double est1 = sk.getEstimate();
assertEquals(est1, 2000, 2000 * .02);
for (long i = 0; i < 2000; i++) {
sk.update(i);
}
final double est2 = sk.getEstimate();
// assert no change
assertEquals(est2, est1, 0);
} catch (final Exception e) {
e.printStackTrace();
}
}
use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.
the class CpcCBinariesTest method checkSlidingBin.
@Test
public void checkSlidingBin() {
final String fileName = "cpc-sliding.sk";
final File file = getResourceFile(fileName);
try (MapHandle mh = Memory.map(file)) {
final Memory mem = mh.get();
println("CPP GENERATED SKETCH FROM BINARY FILE LgK=11, U0 to U19999");
println("PreambleUtil.toString(mem, true)" + LS);
println(PreambleUtil.toString(mem, true));
println(LS + LS + "################");
println("CpcSketch sk = CpcSketch.heapify(mem);");
println("sk.toString(true)" + LS);
final CpcSketch sk = CpcSketch.heapify(mem);
println(sk.toString(true));
assertEquals(sk.getFlavor(), Flavor.SLIDING);
final double est1 = sk.getEstimate();
assertEquals(est1, 20000, 20000 * .02);
for (long i = 0; i < 20000; i++) {
sk.update(i);
}
final double est2 = sk.getEstimate();
assertEquals(est2, est1, 0);
} catch (final Exception e) {
e.printStackTrace();
}
}
use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.
the class CpcCBinariesTest method checkSparseImages.
@Test
public void checkSparseImages() {
final String fileName = "cpc-sparse.sk";
final File file = getResourceFile(fileName);
try (MapHandle mh = Memory.map(file)) {
final Memory mem = mh.get();
final int cap = (int) mem.getCapacity();
final byte[] memByteArr = new byte[cap];
mem.getByteArray(0, memByteArr, 0, cap);
final CpcSketch sk = new CpcSketch(11);
for (int i = 0; i < 100; i++) {
sk.update(i);
}
final byte[] mem2ByteArr = sk.toByteArray();
final Memory mem2 = Memory.wrap(mem2ByteArr);
assertEquals(mem.getCapacity(), mem2.getCapacity());
assertEquals(memByteArr, mem2ByteArr);
} catch (final Exception e) {
e.printStackTrace();
}
}
Aggregations