From bc1ecb312df3a2f7518e6679897d183b2423f130 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20M=C3=A4rki?= Date: Mon, 14 Dec 2015 11:27:08 +0100 Subject: [PATCH] ATEST-296 --- Readme.md | 67 +++++++- doc/images/QueryInterfaceDescription.odg | Bin 28007 -> 26931 bytes doc/images/Value_Binning.png | Bin 44921 -> 0 bytes doc/images/Value_Binning_BinSize.png | Bin 0 -> 49322 bytes doc/images/Value_Binning_NrOfBins.png | Bin 0 -> 49326 bytes .../controller/QueryRestControllerTest.java | 157 +++++++++++++++--- .../queryrest/query/DummyCassandraReader.java | 152 +++++++++-------- .../test/queryrest/query/DummyDataReader.java | 60 +++++-- 8 files changed, 328 insertions(+), 108 deletions(-) delete mode 100644 doc/images/Value_Binning.png create mode 100644 doc/images/Value_Binning_BinSize.png create mode 100644 doc/images/Value_Binning_NrOfBins.png diff --git a/Readme.md b/Readme.md index fdca694..08977a6 100644 --- a/Readme.md +++ b/Readme.md @@ -147,8 +147,8 @@ There exist following fields: - **range**: The range of the query (see [Query Range](Readme.md#query_range)). - **ordering**: The ordering of the data (see [here](https://github.psi.ch/projects/ST/repos/ch.psi.daq.common/browse/src/main/java/ch/psi/daq/common/ordering/Ordering.java) for possible values). - **fields**: The requested fields (see [here](https://github.psi.ch/projects/ST/repos/ch.psi.daq.query/browse/src/main/java/ch/psi/daq/query/model/QueryField.java) for possible values). -- **nrOfBins**: Activates data binning. Specifies the number of bins the pulse/time range should be devided into. -- **binSize**: Activates data binning. Specifies the number of pulses per bin for pulse-range queries or the number of milliseconds per bin for time-range queries. +- **nrOfBins**: Activates data binning. Specifies the number of bins the pulse/time range should be divided into. +- **binSize**: Activates data binning. Specifies the number of pulses per bin for pulse-range queries or the number of milliseconds per bin for time-range queries (using number of pulses and number of milliseconds makes this binning strategy consistent between channel with different update frequencies). - **aggregations**: Activates data aggregation. Array of requested aggregations (see [here](https://github.psi.ch/projects/ST/repos/ch.psi.daq.query/browse/src/main/java/ch/psi/daq/query/model/Aggregation.java) for possible values). These values will be added to the *data* array response. - **aggregationType**: Specifies the type of aggregation (see [here](https://github.psi.ch/projects/ST/repos/ch.psi.daq.query/browse/src/main/java/ch/psi/daq/query/model/AggregationType.java)). The default type is *value* aggregation (e.g., sum([1,2,3])=6). Alternatively, it is possible to define *index* aggregation for multiple arrays in combination with binning (e.g., sum([1,2,3], [3,2,1]) = [4,4,4]). - **aggregateChannels**: Specifies whether the data of the requested channels should be combined together using the defined aggregation (values: true|**false**) @@ -577,7 +577,7 @@ Array value [aggregations](https://github.psi.ch/projects/ST/repos/ch.psi.daq.qu ![Value Aggregation](doc/images/Value_Aggregation.png) -##### Value Aggregation with Binning +##### Value Aggregation with Binning (nrOfBins) ```json { @@ -632,7 +632,66 @@ curl -H "Content-Type: application/json" -X POST -d '{"nrOfBins":2,"aggregationT Array value [aggregations](https://github.psi.ch/projects/ST/repos/ch.psi.daq.query/browse/src/main/java/ch/psi/daq/query/model/Aggregation.java) with additional binning: -![Value Aggregation with Binning](doc/images/Value_Binning.png) +![Value Aggregation with Binning](doc/images/Value_Binning_NrOfBins.png) + +##### Value Aggregation with Binning (binSize) + +**binSize** specifies the number of pulses per bin for pulse-range queries or the number of milliseconds per bin for time-range queries (using number of pulses and number of milliseconds makes this binning strategy consistent between channel with different update frequencies). + +```json +{ + "binSize":10, + "aggregationType":"value", + "aggregations":["min","max","mean"], + "fields":["globalMillis","value"], + "range":{ + "globalMillis":0, + "globalMillis":3 + }, + "channels":[ + "Channel_01" + ] +} +``` + +###### Command + +```bash +curl -H "Content-Type: application/json" -X POST -d '{"binSize":10,"aggregationType":"value","aggregations":["min","max","mean"],"fields":["globalMillis","value"],"range":{"globalMillis":0,"globalMillis":3},"channels":["Channel_01"]}' http://data-api.psi.ch/sf/query +``` + +###### Response + +```json +[ + { + "channel":"Channel_01", + "data":[ + { + "globalMillis":0, + "value":{ + "min":1.0, + "max":5.0, + "mean":3.0 + } + }, + { + "globalMillis":20, + "value":{ + "min":3.0, + "max":7.0, + "mean":5.0 + } + } + ] + } +] + +``` + +Array value [aggregations](https://github.psi.ch/projects/ST/repos/ch.psi.daq.query/browse/src/main/java/ch/psi/daq/query/model/Aggregation.java) with additional binning: + +![Value Aggregation with Binning](doc/images/Value_Binning_BinSize.png) ##### Index Aggregation diff --git a/doc/images/QueryInterfaceDescription.odg b/doc/images/QueryInterfaceDescription.odg index a6433286b99939f4ff76e7a60b49a5b83bf54da8..b578a59bb2155730720aaaa11701d0a0763e726d 100644 GIT binary patch delta 23330 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 delta 24432 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 diff --git a/doc/images/Value_Binning.png b/doc/images/Value_Binning.png deleted file mode 100644 index a1a74e93aca821dcc6ecc5cced33ca0911aba05e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44921 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 diff --git a/doc/images/Value_Binning_BinSize.png b/doc/images/Value_Binning_BinSize.png new file mode 100644 index 0000000000000000000000000000000000000000..b63a8a6ad00d7033215c8213df4879fd92ef3d81 GIT binary patch literal 49322 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

YU>?-ZKY3(Z&iOF^27+^+<+ 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 literal 0 HcmV?d00001 diff --git a/doc/images/Value_Binning_NrOfBins.png b/doc/images/Value_Binning_NrOfBins.png new file mode 100644 index 0000000000000000000000000000000000000000..c33f99dfa83eae287bbcd0b561d43591cc2d5ab3 GIT binary patch literal 49326 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

YU>?-ZKY3(Z&iOF^27+^+<+ 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

#^N~vtkdY9i{<&} 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 NNsz2)rLdm={{aqGJ(d6f literal 0 HcmV?d00001 diff --git a/src/test/java/ch/psi/daq/test/queryrest/controller/QueryRestControllerTest.java b/src/test/java/ch/psi/daq/test/queryrest/controller/QueryRestControllerTest.java index e6571f0..fe52cfa 100644 --- a/src/test/java/ch/psi/daq/test/queryrest/controller/QueryRestControllerTest.java +++ b/src/test/java/ch/psi/daq/test/queryrest/controller/QueryRestControllerTest.java @@ -36,7 +36,9 @@ public class QueryRestControllerTest extends AbstractDaqRestTest { @Resource private CorsFilter corsFilter; - public static final String[] TEST_CHANNEL_NAMES = new String[] {"testChannel1", "testChannel2"}; + public static final String TEST_CHANNEL_01 = "testChannel1"; + public static final String TEST_CHANNEL_02 = "testChannel2"; + public static final String[] TEST_CHANNEL_NAMES = new String[] {TEST_CHANNEL_01, TEST_CHANNEL_02}; @After public void tearDown() throws Exception {} @@ -168,8 +170,8 @@ public class QueryRestControllerTest extends AbstractDaqRestTest { public void testPulseRangeQuery() throws Exception { DAQQuery request = new DAQQuery( new RequestRangePulseId( - 100, - 101), + 10, + 11), TEST_CHANNEL_NAMES); String content = mapper.writeValueAsString(request); @@ -185,15 +187,18 @@ public class QueryRestControllerTest extends AbstractDaqRestTest { .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.jsonPath("$").isArray()) .andExpect(MockMvcResultMatchers.jsonPath("$[0]").exists()) - .andExpect(MockMvcResultMatchers.jsonPath("$[0].channel").value("testChannel1")) - .andExpect(MockMvcResultMatchers.jsonPath("$[0].data").isArray()) - .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].pulseId").value(100)) - .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].pulseId").value(101)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].channel").value(TEST_CHANNEL_01)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].pulseId").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].globalMillis").value(100)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].pulseId").value(11)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].globalMillis").value(110)) .andExpect(MockMvcResultMatchers.jsonPath("$[1]").exists()) - .andExpect(MockMvcResultMatchers.jsonPath("$[1].channel").value("testChannel2")) + .andExpect(MockMvcResultMatchers.jsonPath("$[1].channel").value(TEST_CHANNEL_02)) .andExpect(MockMvcResultMatchers.jsonPath("$[1].data").isArray()) - .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[0].pulseId").value(100)) - .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[1].pulseId").value(101)); + .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[0].pulseId").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[0].globalMillis").value(100)) + .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[1].pulseId").value(11)) + .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[1].globalMillis").value(110)); } @Test @@ -201,7 +206,7 @@ public class QueryRestControllerTest extends AbstractDaqRestTest { DAQQuery request = new DAQQuery( new RequestRangeTime( 100, - 101), + 110), TEST_CHANNEL_NAMES); String content = mapper.writeValueAsString(request); @@ -215,21 +220,25 @@ public class QueryRestControllerTest extends AbstractDaqRestTest { .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.jsonPath("$").isArray()) .andExpect(MockMvcResultMatchers.jsonPath("$[0]").exists()) - .andExpect(MockMvcResultMatchers.jsonPath("$[0].channel").value("testChannel1")) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].channel").value(TEST_CHANNEL_01)) .andExpect(MockMvcResultMatchers.jsonPath("$[0].data").isArray()) - .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].pulseId").value(100)) - .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].pulseId").value(101)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].pulseId").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].globalMillis").value(100)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].pulseId").value(11)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].globalMillis").value(110)) .andExpect(MockMvcResultMatchers.jsonPath("$[1]").exists()) - .andExpect(MockMvcResultMatchers.jsonPath("$[1].channel").value("testChannel2")) + .andExpect(MockMvcResultMatchers.jsonPath("$[1].channel").value(TEST_CHANNEL_02)) .andExpect(MockMvcResultMatchers.jsonPath("$[1].data").isArray()) - .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[0].pulseId").value(100)) - .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[1].pulseId").value(101)); + .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[0].pulseId").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[0].globalMillis").value(100)) + .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[1].pulseId").value(11)) + .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[1].globalMillis").value(110)); } @Test public void testDateRangeQuery() throws Exception { String startDate = RequestRangeDate.format(100); - String endDate = RequestRangeDate.format(101); + String endDate = RequestRangeDate.format(110); DAQQuery request = new DAQQuery( new RequestRangeDate( startDate, @@ -250,15 +259,19 @@ public class QueryRestControllerTest extends AbstractDaqRestTest { .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.jsonPath("$").isArray()) .andExpect(MockMvcResultMatchers.jsonPath("$[0]").exists()) - .andExpect(MockMvcResultMatchers.jsonPath("$[0].channel").value("testChannel1")) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].channel").value(TEST_CHANNEL_01)) .andExpect(MockMvcResultMatchers.jsonPath("$[0].data").isArray()) - .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].pulseId").value(100)) - .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].pulseId").value(101)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].pulseId").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].globalMillis").value(100)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].pulseId").value(11)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].globalMillis").value(110)) .andExpect(MockMvcResultMatchers.jsonPath("$[1]").exists()) - .andExpect(MockMvcResultMatchers.jsonPath("$[1].channel").value("testChannel2")) + .andExpect(MockMvcResultMatchers.jsonPath("$[1].channel").value(TEST_CHANNEL_02)) .andExpect(MockMvcResultMatchers.jsonPath("$[1].data").isArray()) - .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[0].pulseId").value(100)) - .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[1].pulseId").value(101)); + .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[0].pulseId").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[0].globalMillis").value(100)) + .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[1].pulseId").value(11)) + .andExpect(MockMvcResultMatchers.jsonPath("$[1].data[1].globalMillis").value(110)); } @Test @@ -302,5 +315,101 @@ public class QueryRestControllerTest extends AbstractDaqRestTest { .andExpect(MockMvcResultMatchers.jsonPath("$[0].data.maxima.max.event.pulseId").value(101)); } + @Test + public void testDateRangeQueryNrOfBinsAggregate() throws Exception { + long startTime = 100; + long endTime = 199; + String startDate = RequestRangeDate.format(startTime); + String endDate = RequestRangeDate.format(endTime); + DAQQuery request = new DAQQuery( + new RequestRangeDate( + startDate, + endDate), + TEST_CHANNEL_01); + request.setNrOfBins(2); + String content = mapper.writeValueAsString(request); + System.out.println(content); + + this.mockMvc + .perform( + MockMvcRequestBuilders + .post(QueryRestController.QUERY) + .contentType(MediaType.APPLICATION_JSON) + .content(content) + ) + .andDo(MockMvcResultHandlers.print()) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$").isArray()) + .andExpect(MockMvcResultMatchers.jsonPath("$[0]").exists()) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].channel").value(TEST_CHANNEL_01)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data").isArray()) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].pulseId").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].globalMillis").value(100)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].eventCount").value(5)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].pulseId").value(15)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].globalMillis").value(150)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].eventCount").value(5)); + } + + @Test + public void testDateRangeQueryBinSizeAggregate() throws Exception { + long startTime = 1000; + long endTime = 1999; + String startDate = RequestRangeDate.format(startTime); + String endDate = RequestRangeDate.format(endTime); + DAQQuery request = new DAQQuery( + new RequestRangeDate( + startDate, + endDate), + TEST_CHANNEL_01); + request.setBinSize(100); + + String content = mapper.writeValueAsString(request); + System.out.println(content); + + this.mockMvc + .perform( + MockMvcRequestBuilders + .post(QueryRestController.QUERY) + .contentType(MediaType.APPLICATION_JSON) + .content(content) + ) + .andDo(MockMvcResultHandlers.print()) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$").isArray()) + .andExpect(MockMvcResultMatchers.jsonPath("$[0]").exists()) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].channel").value(TEST_CHANNEL_01)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data").isArray()) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].pulseId").value(100)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].globalMillis").value(1000)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[0].eventCount").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].pulseId").value(110)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].globalMillis").value(1100)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[1].eventCount").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[2].pulseId").value(120)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[2].globalMillis").value(1200)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[2].eventCount").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[3].pulseId").value(130)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[3].globalMillis").value(1300)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[3].eventCount").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[4].pulseId").value(140)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[4].globalMillis").value(1400)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[4].eventCount").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[5].pulseId").value(150)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[5].globalMillis").value(1500)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[5].eventCount").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[6].pulseId").value(160)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[6].globalMillis").value(1600)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[6].eventCount").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[7].pulseId").value(170)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[7].globalMillis").value(1700)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[7].eventCount").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[8].pulseId").value(180)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[8].globalMillis").value(1800)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[8].eventCount").value(10)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[9].pulseId").value(190)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[9].globalMillis").value(1900)) + .andExpect(MockMvcResultMatchers.jsonPath("$[0].data[9].eventCount").value(10)); + } } diff --git a/src/test/java/ch/psi/daq/test/queryrest/query/DummyCassandraReader.java b/src/test/java/ch/psi/daq/test/queryrest/query/DummyCassandraReader.java index 65ee474..eab0b7a 100644 --- a/src/test/java/ch/psi/daq/test/queryrest/query/DummyCassandraReader.java +++ b/src/test/java/ch/psi/daq/test/queryrest/query/DummyCassandraReader.java @@ -30,19 +30,19 @@ import com.google.common.collect.Lists; * */ public class DummyCassandraReader implements CassandraReader { - + private static final int KEYSPACE = 1; private CassandraDataGen dataGen; private String[] channels; - + /** * */ public DummyCassandraReader() { this.dataGen = new CassandraDataGen(); - this.channels = new String[]{ - "testChannel1", + this.channels = new String[] { + "testChannel1", "testChannel2", "BoolScalar", "BoolWaveform", @@ -68,8 +68,9 @@ public class DummyCassandraReader implements CassandraReader { "Float64Waveform", "StringScalar"}; } + /** - * @{inheritDoc} + * @{inheritDoc */ @Override public Stream getChannelStream(String regex) { @@ -82,7 +83,7 @@ public class DummyCassandraReader implements CassandraReader { } /** - * @{inheritDoc} + * @{inheritDoc */ @Override public Stream getEventStream(String channel, long startPulseId, long endPulseId, @@ -91,77 +92,84 @@ public class DummyCassandraReader implements CassandraReader { } /** - * @{inheritDoc} + * @{inheritDoc */ @Override public Stream getEventStream(String channel, long startMillis, long startNanos, long endMillis, long endNanos, Ordering ordering, String... columns) { - return getDummyEventStream(channel, startMillis, endMillis); + return getDummyEventStream(channel, startMillis / 10, endMillis / 10); } - + /** - * @{inheritDoc} + * @{inheritDoc */ @Override public Stream getEventStream(EventQuery eventQuery, Stream queryProviders) { - List result = Lists.newArrayList(); - queryProviders.forEach(ceq -> { + Stream result = queryProviders.map(ceq -> { if (ceq instanceof ChannelEventQueryInfo) { - result.add(getEvent((ChannelEventQueryInfo) ceq)); + return getEvent((ChannelEventQueryInfo) ceq); } else { throw new UnsupportedOperationException("This is not yet implemented!"); } }); - - return result.stream(); + + return result; } + /** - * @{inheritDoc} - */ + * @{inheritDoc + */ @Override public Stream getEventStream(PulseIdRangeQuery query) { - Stream dummyEventStream = getDummyEventStream(query.getChannel(), query.getStartPulseId(), query.getEndPulseId()) - .map(ce -> { return (ChannelEvent) ce; }); + Stream dummyEventStream = + getDummyEventStream(query.getChannel(), query.getStartPulseId(), query.getEndPulseId()) + .map(ce -> { + return (ChannelEvent) ce; + }); return dummyEventStream; - + } + /** - * @{inheritDoc} + * @{inheritDoc */ @Override public Stream getEventStream(TimeRangeQuery query) { - Stream dummyEventStream = getDummyEventStream(query.getChannel(), query.getStartMillis(), query.getEndMillis()) - .map(ce -> { return (ChannelEvent) ce; }); + Stream dummyEventStream = + getDummyEventStream(query.getChannel(), query.getStartMillis() / 10, query.getEndMillis() / 10) + .map(ce -> { + return (ChannelEvent) ce; + }); return dummyEventStream; } - - + + private Stream getDummyEventStream(String channel, long startIndex, long endIndex) { - - return dataGen.generateData(startIndex, (endIndex-startIndex + 1), - i -> i, - i -> i, - i -> i, - i -> i, + + return dataGen.generateData(startIndex, (endIndex - startIndex + 1), + i -> i * 10, + i -> 0, i -> i, + i -> i * 10, + i -> 0, i -> Long.valueOf(i), channel).stream(); } private List getDummyEvents(String channel, long startIndex, long endIndex) { - - return dataGen.generateData(startIndex, (endIndex-startIndex + 1), - i -> i, - i -> i, - i -> i, - i -> i, + + return dataGen.generateData(startIndex, (endIndex - startIndex + 1), + i -> i * 10, + i -> 0, i -> i, + i -> i * 10, + i -> 0, i -> Long.valueOf(i), channel); } /** - * @{inheritDoc} + * @{inheritDoc */ @Override public List getChannels() { @@ -169,26 +177,30 @@ public class DummyCassandraReader implements CassandraReader { } /** - * @{inheritDoc} + * @{inheritDoc */ @Override public List getChannels(String regex) { - return Lists.newArrayList(channels).stream().filter(s -> { return s.contains(regex); }).collect(Collectors.toList()); + return Lists.newArrayList(channels).stream().filter(s -> { + return s.contains(regex); + }).collect(Collectors.toList()); } /** - * @{inheritDoc} + * @{inheritDoc */ @Override public ChannelEvent getEvent(ChannelEventQueryInfo queryInfo, String... columns) { if (queryInfo.getPulseId() > 0) { - return (ChannelEvent) getDummyEvents(queryInfo.getChannel(), queryInfo.getPulseId(), queryInfo.getPulseId()).get(0); + return (ChannelEvent) getDummyEvents(queryInfo.getChannel(), queryInfo.getPulseId(), queryInfo.getPulseId()) + .get(0); } - return (ChannelEvent) getDummyEvents(queryInfo.getChannel(), queryInfo.getGlobalMillis(), queryInfo.getGlobalMillis()).get(0); + return (ChannelEvent) getDummyEvents(queryInfo.getChannel(), queryInfo.getGlobalMillis() / 10, + queryInfo.getGlobalMillis() / 10).get(0); } /** - * @{inheritDoc} + * @{inheritDoc */ @Override public CompletableFuture getEventAsync(ChannelEventQueryInfo queryInfo, String... columns) { @@ -196,61 +208,63 @@ public class DummyCassandraReader implements CassandraReader { } /** - * @{inheritDoc} + * @{inheritDoc */ @Override public Stream getChannelEventQueryStream(PulseIdRangeQuery query) { - - + return dataGen.generateMetaPulseId( - KEYSPACE, - ConverterProvider.TYPE_INT32, + KEYSPACE, + ConverterProvider.TYPE_INT32, null, - query.getStartPulseId(), + query.getStartPulseId(), (query.getEndPulseId() - query.getStartPulseId() + 1), - i -> i, - i -> i, + i -> i * 10, + i -> 0, i -> i, query.getChannel()).stream(); } /** - * @{inheritDoc} + * @{inheritDoc */ @Override public Stream getChannelEventQueryStream(TimeRangeQuery query) { - - + return dataGen.generateMetaTime( - KEYSPACE, - ConverterProvider.TYPE_INT32, + KEYSPACE, + ConverterProvider.TYPE_INT32, null, - query.getStartMillis(), - (query.getEndMillis() - query.getStartMillis() + 1), - i -> i, - i -> i, + query.getStartMillis() / 10, + ((query.getEndMillis() - query.getStartMillis()) / 10 + 1), + i -> i * 10, + i -> 0, i -> i, query.getChannel()).stream(); } - + /** - * @{inheritDoc} + * @{inheritDoc */ @Override public Stream getMetaPulseIdStream(PulseIdRangeQuery query) { - - return getChannelEventQueryStream(query).map(r -> { return (MetaPulseId) r; }); - + + return getChannelEventQueryStream(query).map(r -> { + return (MetaPulseId) r; + }); + } /** - * @{inheritDoc} + * @{inheritDoc */ @Override public Stream getMetaTimeStream(TimeRangeQuery query) { - - return getChannelEventQueryStream(query).map(r -> { return (MetaTime) r; }); + + return getChannelEventQueryStream(query).map(r -> { + return (MetaTime) r; + }); } } diff --git a/src/test/java/ch/psi/daq/test/queryrest/query/DummyDataReader.java b/src/test/java/ch/psi/daq/test/queryrest/query/DummyDataReader.java index e55cf11..6620757 100644 --- a/src/test/java/ch/psi/daq/test/queryrest/query/DummyDataReader.java +++ b/src/test/java/ch/psi/daq/test/queryrest/query/DummyDataReader.java @@ -1,6 +1,7 @@ package ch.psi.daq.test.queryrest.query; import java.util.List; +import java.util.Random; import java.util.regex.Pattern; import java.util.stream.LongStream; import java.util.stream.Stream; @@ -18,6 +19,8 @@ public class DummyDataReader implements DataReader { public static final String TEST_CHANNEL_2 = "testChannel2"; public static final List TEST_CHANNEL_NAMES = Lists.newArrayList(TEST_CHANNEL_1, TEST_CHANNEL_2); + private final Random random = new Random(0); + @Override public Stream getChannelStream(String regex) { Stream channelStream = TEST_CHANNEL_NAMES.stream(); @@ -39,20 +42,55 @@ public class DummyDataReader implements DataReader { @Override public Stream getEventStream(String channel, long startMillis, long startNanos, long endMillis, long endNanos, Ordering ordering, String... columns) { - return getElements(channel, startMillis, endMillis); + return getElements(channel, startMillis / 10, endMillis / 10); } protected Stream getElements(String channel, long start, long end) { - return LongStream.rangeClosed(start, end).mapToObj(i -> { - return new ChannelEvent( - channel, - i, - 0, - i, - i, - 0, - 123 // dummy value - ); + String channelLower = channel.toLowerCase(); + + Stream eventStream = LongStream.rangeClosed(start, end).mapToObj(i -> { + if (channelLower.contains("waveform")) { + long[] value = random.longs(2048).toArray(); + value[0] = i; + return new ChannelEvent( + channel, + i * 10, + 0, + i, + i * 10, + 0, + value + ); + + } else if (channelLower.contains("image")) { + int x = 640; + int y = 480; + int[] shape = new int[] {x, y}; + long[] value = random.longs(x * y).toArray(); + value[0] = i; + return new ChannelEvent( + channel, + i * 10, + 0, + i, + i * 10, + 0, + value, + shape + ); + } else { + return new ChannelEvent( + channel, + i * 10, + 0, + i, + i * 10, + 0, + i + ); + } }); + + return eventStream; } }