use of com.axibase.tsd.api.model.Period in project atsd-api-test by axibase.
the class SeriesQueryAggregateGroupOrderRateTest method testRateLimit.
@Issue("4729")
@Test(description = "test query result with rate limit")
public void testRateLimit() {
SeriesQuery query = new SeriesQuery("*", TEST_METRIC, "2017-01-01T00:00:00Z", "2017-01-01T00:00:20Z");
query.setRate(new Rate(new Period(10, TimeUnit.SECOND)));
query.setLimit(1);
query.setDirection("ASC");
Set<CheckedFields> actualFields = createCheckFields(querySeriesAsList(query));
CheckedFields series1 = new CheckedFields(TEST_ENTITY1, Arrays.asList(Sample.ofDateDecimal("2017-01-01T00:00:03.000Z", new BigDecimal("10.0"))));
CheckedFields series2 = new CheckedFields(TEST_ENTITY2, Arrays.asList(Sample.ofDateDecimal("2017-01-01T00:00:02.000Z", new BigDecimal("10.0"))));
Set<CheckedFields> expectedFields = collectCheckFields(series1, series2);
assertEquals(actualFields, expectedFields, "Incorrect query result with group limit");
}
use of com.axibase.tsd.api.model.Period in project atsd-api-test by axibase.
the class ApplyTest method interpolateParamVariants.
@DataProvider(name = "interpolateVariantsProvider")
private static Object[][] interpolateParamVariants() {
ArrayList<List<String>> params = new ArrayList<>();
params.add(singletonList(new Period(1, TimeUnit.MINUTE).toString()));
params.add(enumStringLists(InterpolateFunction.class));
params.add(enumStringLists(Boundary.class));
params.add(FillMode.stringValues());
params.add(enumStringLists(Alignment.class));
Set<ArrayList<String>> variants = generateSetOfParams(params);
StringBuilder builder = new StringBuilder();
int j = 0;
Object[][] result = new Object[variants.size()][1];
for (ArrayList<String> variant : variants) {
builder.setLength(0);
int variantSize = variant.size();
for (int i = 0; i < variantSize; i++) {
String element = variant.get(i);
if (element == null) {
continue;
} else {
builder.append(String.format("%s, ", element));
}
}
builder.setLength(builder.length() - 2);
result[j][0] = builder.toString();
j++;
}
return result;
}
use of com.axibase.tsd.api.model.Period in project atsd-api-test by axibase.
the class SeriesQueryForecastTimeFilterTest method buildForecastSettings.
private Forecast buildForecastSettings() {
HoltWintersSettings hwSettings = new HoltWintersSettings().setAlpha(0.5).setBeta(0.5).setGamma(0.5).setAuto(false).setPeriod(new Period(1, TimeUnit.DAY));
List<SeriesType> include = Arrays.asList(SeriesType.RECONSTRUCTED, SeriesType.FORECAST);
return new Forecast().setHw(hwSettings).setInclude(include).setScoreInterval(new Interval(1, TimeUnit.DAY));
}
use of com.axibase.tsd.api.model.Period in project atsd-api-test by axibase.
the class SeriesQueryGroupExampleTest method testExampleSumAggregationToGroup.
@Issue("2995")
@Test(description = "https://github.com/axibase/atsd-docs/blob/master/api/data/series/group.md#group-aggregation")
public void testExampleSumAggregationToGroup() throws Exception {
SeriesQuery query = prepareDefaultQuery("2016-06-25T08:00:00Z", "2016-06-25T08:01:00Z");
query.setGroup(new Group(GroupType.SUM, null, 1));
query.setAggregate(new Aggregate(AggregationType.COUNT, new Period(10, TimeUnit.SECOND)));
List<Sample> expectedSamples = Arrays.asList(Sample.ofDateInteger("2016-06-25T08:00:00.000Z", 3), Sample.ofDateInteger("2016-06-25T08:00:10.000Z", 3), Sample.ofDateInteger("2016-06-25T08:00:30.000Z", 2), Sample.ofDateInteger("2016-06-25T08:00:40.000Z", 2), Sample.ofDateInteger("2016-06-25T08:00:50.000Z", 1));
List<Series> groupedSeries = querySeriesAsList(query);
assertEquals("Response should contain only one series", 1, groupedSeries.size());
List<Sample> givenSamples = groupedSeries.get(0).getData();
final String actual = jacksonMapper.writeValueAsString(givenSamples);
final String expected = jacksonMapper.writeValueAsString(expectedSamples);
assertTrue("Grouped series do not match to expected", compareJsonString(expected, actual));
}
use of com.axibase.tsd.api.model.Period in project atsd-api-test by axibase.
the class SeriesQueryGroupExampleTest method testExampleSumAggregation.
@Issue("2995")
@Test(description = "https://github.com/axibase/atsd-docs/blob/master/api/data/series/group.md#group-aggregation")
public void testExampleSumAggregation() throws Exception {
SeriesQuery query = prepareDefaultQuery("2016-06-25T08:00:00Z", "2016-06-25T08:01:00Z");
query.setGroup(new Group(GroupType.SUM, new Period(10, TimeUnit.SECOND)));
List<Sample> expectedSamples = Arrays.asList(Sample.ofDateInteger("2016-06-25T08:00:00.000Z", 15), Sample.ofDateInteger("2016-06-25T08:00:10.000Z", 21), Sample.ofDateInteger("2016-06-25T08:00:30.000Z", 16), Sample.ofDateInteger("2016-06-25T08:00:40.000Z", 20), Sample.ofDateInteger("2016-06-25T08:00:50.000Z", 19));
List<Series> groupedSeries = querySeriesAsList(query);
assertEquals("Response should contain only one series", 1, groupedSeries.size());
List<Sample> givenSamples = groupedSeries.get(0).getData();
final String actual = jacksonMapper.writeValueAsString(givenSamples);
final String expected = jacksonMapper.writeValueAsString(expectedSamples);
assertTrue("Grouped series do not match to expected", compareJsonString(expected, actual));
}
Aggregations