package com.linkedin.thirdeye.util;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Multimap;
@Test
public class ThirdEyeUtilsTest {
/*@Test(dataProvider = "testSortedFiltersDataProvider")
public void testSortedFilters(String filters, String expectedFilters) {
String sortedFilters = ThirdEyeUtils.getSortedFilters(filters);
Assert.assertEquals(sortedFilters, expectedFilters);
}
@Test(dataProvider = "testSortedFiltersFromJsonDataProvider")
public void testSortedFiltersFromJson(String filterJson, String expectedFilters) {
String sortedFilters = ThirdEyeUtils.getSortedFiltersFromJson(filterJson);
Assert.assertEquals(sortedFilters, expectedFilters);
}
@Test(dataProvider = "testSortedFiltersFromMultimapDataProvider")
public void testSortedFiltersFromMultimap(Multimap<String, String> filterMultimap,
String expectedFilters) {
String sortedFilters = ThirdEyeUtils.getSortedFiltersFromMultiMap(filterMultimap);
Assert.assertEquals(sortedFilters, expectedFilters);
}
@DataProvider(name = "testConstructCronDataProvider")
public Object[][] testConstructCronDataProvider() {
return new Object[][] {
{
"10", "12", "DAYS", "0 10 12 * * ?"
}, {
null, null, "DAYS", "0 0 0 * * ?"
}, {
null, null, "HOURS", "0 0 * * * ?"
}, {
"70", "12", "DAYS", null
}, {
"20", "25", "DAYS", null
}, {
"70", "12", "WEEKS", null
}
};
}
@DataProvider(name = "testSortedFiltersDataProvider")
public Object[][] testSortedFiltersDataProvider() {
return new Object[][] {
{
"a=z;z=d;a=f;a=e;k=m;k=f;z=c;f=g;", "a=e;a=f;a=z;f=g;k=f;k=m;z=c;z=d"
}, {
";", null
}, {
"a=b", "a=b"
}, {
"a=z;a=b", "a=b;a=z"
}
};
}
@DataProvider(name = "testSortedFiltersFromJsonDataProvider")
public Object[][] testSortedFiltersFromJsonDataProvider() {
return new Object[][] {
{
"{\"a\":[\"b\",\"c\"]}", "a=b;a=c"
}, {
"{\"z\":[\"g\"],\"x\":[\"l\"],\"a\":[\"b\",\"c\"]}", "a=b;a=c;x=l;z=g"
}
};
}
@DataProvider(name = "testSortedFiltersFromMultimapDataProvider")
public Object[][] testSortedFiltersFromMultimapDataProvider() {
ListMultimap<String, String> multimap1 = ArrayListMultimap.create();
multimap1.put("a", "b");
multimap1.put("a", "c");
ListMultimap<String, String> multimap2 = ArrayListMultimap.create();
multimap2.put("a", "b");
multimap2.put("z", "g");
multimap2.put("k", "b");
multimap2.put("i", "c");
multimap2.put("a", "c");
return new Object[][] {
{
multimap1, "a=b;a=c"
}, {
multimap2, "a=b;a=c;i=c;k=b;z=g"
}
};
}*/
@Test
public void testGetRoundedValue() throws Exception {
double value = 123;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "123");
value = 123.24;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "123.24");
value = 123.246;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "123.25");
value = 123.241;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "123.24");
value = 0.23;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "0.23");
value = 0.236;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "0.24");
value = 0.01;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "0.01");
value = 0.016;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "0.016");
value = 0.0167;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "0.017");
value = 0.001;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "0.001");
value = 0.0013;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "0.0013");
value = 0.00135;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "0.0014");
value = 0;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "0");
value = 0.0000;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "0");
value = 0.0000009;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "0");
value = 0.00123456789;
Assert.assertEquals(ThirdEyeUtils.getRoundedValue(value), "0.0012");
}
}