Skip to content

Commit

Permalink
Test LATEST argument
Browse files Browse the repository at this point in the history
  • Loading branch information
sazzad16 committed Jul 20, 2022
1 parent 853e234 commit 7f18610
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 5 deletions.
10 changes: 10 additions & 0 deletions src/main/java/redis/clients/jedis/timeseries/TSCreateParams.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
import static redis.clients.jedis.Protocol.toByteArray;
import static redis.clients.jedis.timeseries.TimeSeriesProtocol.TimeSeriesKeyword.*;

import java.util.LinkedHashMap;
import java.util.Map;

import redis.clients.jedis.CommandArguments;
import redis.clients.jedis.params.IParams;

Expand Down Expand Up @@ -53,6 +55,14 @@ public TSCreateParams labels(Map<String, String> labels) {
return this;
}

public TSCreateParams label(String label, String value) {
if (this.labels == null) {
this.labels = new LinkedHashMap<>();
}
this.labels.put(label, value);
return this;
}

@Override
public void addParams(CommandArguments args) {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package redis.clients.jedis.modules.timeseries;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
Expand Down Expand Up @@ -693,11 +692,12 @@ public void testInfoDebug() {
List<Map<String, Object>> chunks = info.getChunks();
assertEquals(1, chunks.size());
Map<String, Object> chunk = chunks.get(0);
assertEquals(0L, chunk.get("startTimestamp"));
assertEquals(0L, chunk.get("endTimestamp"));
assertEquals(0L, chunk.get("samples"));
assertEquals(4096L, chunk.get("size"));
assertEquals(Double.POSITIVE_INFINITY, chunk.get("bytesPerSample"));
// Don't care what the values are as long as the values are parsed according to types
assertTrue(chunk.get("size") instanceof Long);
assertTrue(chunk.get("startTimestamp") instanceof Long);
assertTrue(chunk.get("endTimestamp") instanceof Long);
assertTrue(chunk.get("bytesPerSample") instanceof Double);

try {
client.tsInfoDebug("none");
Expand Down Expand Up @@ -796,4 +796,72 @@ public void testMRevRange() {
assertEquals(labels3, ranges3.get(1).getLabels());
assertEquals(Arrays.asList(new TSElement(3000L, -33.0), new TSElement(2000L, 0.0)), ranges3.get(1).getValue());
}

@Test
public void latest() {
client.tsCreate("ts1");
client.tsCreate("ts2");
client.tsCreateRule("ts1", "ts2", AggregationType.SUM, 10);
client.tsAdd("ts1", 1, 1);
client.tsAdd("ts1", 2, 3);
client.tsAdd("ts1", 11, 7);
client.tsAdd("ts1", 13, 1);
List<TSElement> range = client.tsRange("ts1", 0, 20);
assertEquals(4, range.size());

final TSElement compact = new TSElement(0, 4);
final TSElement latest = new TSElement(10, 8);

// get
assertEquals(compact, client.tsGet("ts2", TSGetParams.getParams()));

assertEquals(latest, client.tsGet("ts2", TSGetParams.getParams().latest()));

// range
assertEquals(Arrays.asList(compact), client.tsRange("ts2", TSRangeParams.rangeParams(0, 10)));

assertEquals(Arrays.asList(compact, latest), client.tsRange("ts2", TSRangeParams.rangeParams(0, 10).latest()));

// revrange
assertEquals(Arrays.asList(compact), client.tsRevRange("ts2", TSRangeParams.rangeParams(0, 10)));

assertEquals(Arrays.asList(latest, compact), client.tsRevRange("ts2", TSRangeParams.rangeParams(0, 10).latest()));
}

@Test
public void latestMulti() {
client.tsCreate("ts1");
client.tsCreate("ts2", TSCreateParams.createParams().label("compact", "true"));
client.tsCreateRule("ts1", "ts2", AggregationType.SUM, 10);
client.tsAdd("ts1", 1, 1);
client.tsAdd("ts1", 2, 3);
client.tsAdd("ts1", 11, 7);
client.tsAdd("ts1", 13, 1);
List<TSElement> range = client.tsRange("ts1", 0, 20);
assertEquals(4, range.size());

final TSElement compact = new TSElement(0, 4);
final TSElement latest = new TSElement(10, 8);

// mget
assertEquals(Arrays.asList(new TSKeyValue<>("ts2", null, compact)),
client.tsMGet(TSMGetParams.multiGetParams(), "compact=true"));

assertEquals(Arrays.asList(new TSKeyValue<>("ts2", null, latest)),
client.tsMGet(TSMGetParams.multiGetParams().latest(), "compact=true"));

// mrange
assertEquals(Arrays.asList(new TSKeyedElements("ts2", null, Arrays.asList(compact))),
client.tsMRange(TSMRangeParams.multiRangeParams().filter("compact=true")));

assertEquals(Arrays.asList(new TSKeyedElements("ts2", null, Arrays.asList(compact, latest))),
client.tsMRange(TSMRangeParams.multiRangeParams().latest().filter("compact=true")));

// mrevrange
assertEquals(Arrays.asList(new TSKeyedElements("ts2", null, Arrays.asList(compact))),
client.tsMRevRange(TSMRangeParams.multiRangeParams().filter("compact=true")));

assertEquals(Arrays.asList(new TSKeyedElements("ts2", null, Arrays.asList(latest, compact))),
client.tsMRevRange(TSMRangeParams.multiRangeParams().latest().filter("compact=true")));
}
}

0 comments on commit 7f18610

Please sign in to comment.