blob: 078de98702517cdce78cd736a32bcead21f5d9df [file] [log] [blame]
/*
* Copyright 2018, Oath Inc.
* Licensed under the terms of the Apache License 2.0. See LICENSE file at the project root for terms.
*/
package com.yahoo.sketches.hive.kll;
import java.util.List;
import org.apache.hadoop.io.BytesWritable;
import org.testng.Assert;
import org.testng.annotations.Test;
import com.yahoo.sketches.kll.KllFloatsSketch;
public class GetQuantilesUDFTest {
@Test
public void nullSketch() {
final List<Float> result = new GetQuantilesUDF().evaluate(null, 0.0);
Assert.assertNull(result);
}
@Test
public void emptyListOfFractions() {
final KllFloatsSketch sketch = new KllFloatsSketch();
sketch.update(1);
sketch.update(2);
sketch.update(3);
final List<Float> result = new GetQuantilesUDF().evaluate(new BytesWritable(sketch.toByteArray()));
Assert.assertNotNull(result);
Assert.assertEquals(result.size(), 0);
}
@Test
public void fractionsNormalCase() {
final KllFloatsSketch sketch = new KllFloatsSketch();
sketch.update(1);
sketch.update(2);
sketch.update(3);
final List<Float> result = new GetQuantilesUDF().evaluate(new BytesWritable(sketch.toByteArray()), 0.0, 0.5, 1.0);
Assert.assertNotNull(result);
Assert.assertEquals(result.size(), 3);
Assert.assertEquals(result.get(0), 1f);
Assert.assertEquals(result.get(1), 2f);
Assert.assertEquals(result.get(2), 3f);
}
}