in src/main/java/org/apache/datasketches/characterization/theta/ThetaSerDeProfile.java [68:102]
public void doTrial(final long[] stats, final int uPerTrial) {
sketch.reset(); // reuse the same sketch
double est1 = 0;
double est2 = 0;
UpdateSketch sketch2 = null;
for (int u = uPerTrial; u-- > 0;) { //populate the sketch
sketch.update(++vIn);
}
if (est) {
final long startEstTime_nS = System.nanoTime();
est1 = sketch.getEstimate();
final long stopEstTime_nS = System.nanoTime();
assertEquals(est1, uPerTrial, uPerTrial * err);
stats[est_ns] = est ? stopEstTime_nS - startEstTime_nS : 0;
}
if (serde) {
final long startSerTime_nS = System.nanoTime();
final byte[] byteArr = sketch.toByteArray();
final long startDeserTime_nS = System.nanoTime();
sketch2 = UpdateSketch.heapify(Memory.wrap(byteArr));
final long stopSerDeTime_nS = System.nanoTime();
est2 = sketch2.getEstimate();
assertEquals(est2, uPerTrial, uPerTrial * err);
stats[ser_ns] = serde ? startDeserTime_nS - startSerTime_nS : 0;
stats[deser_ns] = serde ? stopSerDeTime_nS - startDeserTime_nS : 0;
stats[size_bytes] = serde ? byteArr.length : 0;
}
if (est && serde) {
assertEquals(est1, est2, 0.0);
}
}