Search in sources :

Example 66 with Memory

use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.

the class MurmurHash3 method hash.

// --Hash of ByteBuffer---------------------------------------------------
/**
 * Hash the remaining bytes of the given ByteBuffer starting at position().
 *
 * @param buf The input ByteBuffer. It must be non-null and non-empty.
 * @param seed A long valued seed.
 * @return a 128-bit hash of the input as a long array of size 2.
 */
public static long[] hash(final ByteBuffer buf, final long seed) {
    Objects.requireNonNull(buf);
    final int pos = buf.position();
    final int rem = buf.remaining();
    checkPositive(rem);
    final Memory mem = Memory.wrap(buf, ByteOrder.LITTLE_ENDIAN).region(pos, rem);
    return hash(mem, seed);
}
Also used : Memory(org.apache.datasketches.memory.Memory)

Example 67 with Memory

use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.

the class ReservoirItemsSketchTest method checkBadMemory.

@Test(expectedExceptions = SketchesArgumentException.class)
public void checkBadMemory() {
    byte[] bytes = new byte[4];
    Memory mem = Memory.wrap(bytes);
    try {
        PreambleUtil.getAndCheckPreLongs(mem);
        fail();
    } catch (final SketchesArgumentException e) {
    // expected
    }
    bytes = new byte[8];
    // only 1 preLong worth of items in bytearray
    bytes[0] = 2;
    mem = Memory.wrap(bytes);
    PreambleUtil.getAndCheckPreLongs(mem);
}
Also used : SketchesArgumentException(org.apache.datasketches.SketchesArgumentException) Memory(org.apache.datasketches.memory.Memory) WritableMemory(org.apache.datasketches.memory.WritableMemory) Test(org.testng.annotations.Test)

Example 68 with Memory

use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.

the class ReservoirItemsSketchTest method checkEmptySketch.

@Test
public void checkEmptySketch() {
    final ReservoirItemsSketch<String> ris = ReservoirItemsSketch.newInstance(5);
    assertTrue(ris.getSamples() == null);
    final byte[] sketchBytes = ris.toByteArray(new ArrayOfStringsSerDe());
    final Memory mem = Memory.wrap(sketchBytes);
    // only minPreLongs bytes and should deserialize to empty
    assertEquals(sketchBytes.length, Family.RESERVOIR.getMinPreLongs() << 3);
    final ArrayOfStringsSerDe serDe = new ArrayOfStringsSerDe();
    final ReservoirItemsSketch<String> loadedRis = ReservoirItemsSketch.heapify(mem, serDe);
    assertEquals(loadedRis.getNumSamples(), 0);
    println("Empty sketch:");
    println("  Preamble:");
    println(PreambleUtil.preambleToString(mem));
    println("  Sketch:");
    println(ris.toString());
}
Also used : ArrayOfStringsSerDe(org.apache.datasketches.ArrayOfStringsSerDe) Memory(org.apache.datasketches.memory.Memory) WritableMemory(org.apache.datasketches.memory.WritableMemory) Test(org.testng.annotations.Test)

Example 69 with Memory

use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.

the class DoublesUnionBuilderTest method checkBuilds.

@Test
public void checkBuilds() {
    UpdateDoublesSketch qs1 = DoublesSketch.builder().build();
    for (int i = 0; i < 1000; i++) {
        qs1.update(i);
    }
    int bytes = qs1.getCompactStorageBytes();
    WritableMemory dstMem = WritableMemory.writableWrap(new byte[bytes]);
    qs1.putMemory(dstMem);
    Memory srcMem = dstMem;
    DoublesUnionBuilder bldr = new DoublesUnionBuilder();
    bldr.setMaxK(128);
    // virgin union
    DoublesUnion union = bldr.build();
    union = DoublesUnion.heapify(srcMem);
    DoublesSketch qs2 = union.getResult();
    assertEquals(qs1.getCompactStorageBytes(), qs2.getCompactStorageBytes());
    union = DoublesUnion.heapify(qs2);
    DoublesSketch qs3 = union.getResult();
    assertEquals(qs2.getCompactStorageBytes(), qs3.getCompactStorageBytes());
    assertFalse(qs2 == qs3);
}
Also used : Memory(org.apache.datasketches.memory.Memory) WritableMemory(org.apache.datasketches.memory.WritableMemory) WritableMemory(org.apache.datasketches.memory.WritableMemory) Test(org.testng.annotations.Test)

Example 70 with Memory

use of org.apache.datasketches.memory.Memory in project sketches-core by DataSketches.

the class DoublesUtilTest method checkPrintMemData2.

@Test
public void checkPrintMemData2() {
    final int k = PreambleUtil.DEFAULT_K;
    final int n = 0;
    final DoublesSketch qs = buildAndLoadQS(k, n);
    final byte[] byteArr = qs.toByteArray();
    final Memory mem = Memory.wrap(byteArr);
    println(DoublesUtil.memToString(true, true, mem));
}
Also used : Memory(org.apache.datasketches.memory.Memory) WritableMemory(org.apache.datasketches.memory.WritableMemory) Test(org.testng.annotations.Test)

Aggregations

Memory (org.apache.datasketches.memory.Memory)213 Test (org.testng.annotations.Test)180 WritableMemory (org.apache.datasketches.memory.WritableMemory)164 SketchesArgumentException (org.apache.datasketches.SketchesArgumentException)17 ArrayOfLongsSerDe (org.apache.datasketches.ArrayOfLongsSerDe)14 SketchesReadOnlyException (org.apache.datasketches.SketchesReadOnlyException)11 File (java.io.File)10 ArrayOfStringsSerDe (org.apache.datasketches.ArrayOfStringsSerDe)10 Util.getResourceFile (org.apache.datasketches.Util.getResourceFile)10 MapHandle (org.apache.datasketches.memory.MapHandle)10 WritableHandle (org.apache.datasketches.memory.WritableHandle)6 SharedLocal (org.apache.datasketches.theta.ConcurrentHeapQuickSelectSketchTest.SharedLocal)3 ArrayOfNumbersSerDe (org.apache.datasketches.ArrayOfNumbersSerDe)2 CloseableIterator (org.apache.druid.java.util.common.parsers.CloseableIterator)2 IntIterator (it.unimi.dsi.fastutil.ints.IntIterator)1 HashSet (java.util.HashSet)1 Family (org.apache.datasketches.Family)1 SketchesStateException (org.apache.datasketches.SketchesStateException)1 CompressedState.importFromMemory (org.apache.datasketches.cpc.CompressedState.importFromMemory)1 DefaultMemoryRequestServer (org.apache.datasketches.memory.DefaultMemoryRequestServer)1