public void TestTupleConstructor() { TimeSeriesTuple tuple = new TimeSeriesTuple(1, 1.1); Assert.Equal(1, tuple.Time); Assert.Equal(1.1, tuple.Val); }
public async Task TestMGetQueryWithLabels() { var keys = CreateKeyNames(2); var db = redisFixture.Redis.GetDatabase(); var label1 = new TimeSeriesLabel(keys[0], "value"); var label2 = new TimeSeriesLabel(keys[1], "value2"); var labels1 = new List <TimeSeriesLabel> { label1, label2 }; var labels2 = new List <TimeSeriesLabel> { label1 }; var ts1 = await db.TimeSeriesAddAsync(keys[0], "*", 1.1, labels : labels1); var tuple1 = new TimeSeriesTuple(ts1, 1.1); var ts2 = await db.TimeSeriesAddAsync(keys[1], "*", 2.2, labels : labels2); var tuple2 = new TimeSeriesTuple(ts2, 2.2); var results = await db.TimeSeriesMGetAsync(new List <string> { $"{keys[0]}=value" }, withLabels : true); Assert.Equal(2, results.Count); Assert.Equal(keys[0], results[0].key); Assert.Equal(tuple1, results[0].value); Assert.Equal(labels1, results[0].labels); Assert.Equal(keys[1], results[1].key); Assert.Equal(tuple2, results[1].value); Assert.Equal(labels2, results[1].labels); }
public void TestMGetQueryWithLabels() { IDatabase db = redisFixture.Redis.GetDatabase(); var label1 = new TimeSeriesLabel("MGET_TESTS_1", "value"); var label2 = new TimeSeriesLabel("MGET_TESTS_2", "value2"); var labels1 = new List <TimeSeriesLabel> { label1, label2 }; var labels2 = new List <TimeSeriesLabel> { label1 }; TimeStamp ts1 = db.TimeSeriesAdd(keys[0], "*", 1.1, labels: labels1); TimeSeriesTuple tuple1 = new TimeSeriesTuple(ts1, 1.1); TimeStamp ts2 = db.TimeSeriesAdd(keys[1], "*", 2.2, labels: labels2); TimeSeriesTuple tuple2 = new TimeSeriesTuple(ts2, 2.2); var results = db.TimeSeriesMGet(new List <string> { "MGET_TESTS_1=value" }, withLabels: true); Assert.Equal(2, results.Count); Assert.Equal(keys[0], results[0].key); Assert.Equal(tuple1, results[0].value); Assert.Equal(labels1, results[0].labels); Assert.Equal(keys[1], results[1].key); Assert.Equal(tuple2, results[1].value); Assert.Equal(labels2, results[1].labels); }
/// <summary> /// Example for GET query. The NRedisTimeSeries TimeSeriesGet command returns a TimeSeriesTuple object. /// </summary> public static void SimpleGetExample() { ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost"); IDatabase db = redis.GetDatabase(); TimeSeriesTuple value = db.TimeSeriesGet("my_ts"); redis.Close(); }
/// <summary> /// Example for GET query. The NRedisTimeSeries TimeSeriesGet command returns a TimeSeriesTuple object. /// </summary> public static async Task SimpleGetAsyncExample() { ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost"); IDatabase db = redis.GetDatabase(); TimeSeriesTuple value = await db.TimeSeriesGetAsync("my_ts"); redis.Close(); }
public void TestTupleHashCode() { TimeSeriesTuple tuple1 = new TimeSeriesTuple(1, 1.1); TimeSeriesTuple tuple1_1 = new TimeSeriesTuple(1, 1.1); TimeSeriesTuple tuple1_2 = new TimeSeriesTuple(2, 2.2); Assert.Equal(tuple1.GetHashCode(), tuple1_1.GetHashCode()); Assert.NotEqual(tuple1.GetHashCode(), tuple1_2.GetHashCode()); }
public void TestTupleEqual() { TimeSeriesTuple tuple1 = new TimeSeriesTuple(1, 1.1); TimeSeriesTuple tuple1_1 = new TimeSeriesTuple(1, 1.1); TimeSeriesTuple tuple1_2 = new TimeSeriesTuple(2, 2.2); Assert.Equal(tuple1, tuple1_1); Assert.NotEqual(tuple1, tuple1_2); }
public void TestAddAndGet() { DateTime now = DateTime.Now; TimeSeriesTuple expected = new TimeSeriesTuple(now, 1.1); IDatabase db = redisFixture.Redis.GetDatabase(); db.TimeSeriesCreate(key); db.TimeSeriesAdd(key, now, 1.1); TimeSeriesTuple actual = db.TimeSeriesGet(key); Assert.Equal(expected, actual); }
public async Task TestAddAndGet() { var key = CreateKeyName(); var now = DateTime.UtcNow; var expected = new TimeSeriesTuple(now, 1.1); var db = redisFixture.Redis.GetDatabase(); await db.TimeSeriesCreateAsync(key); await db.TimeSeriesAddAsync(key, now, 1.1); var actual = await db.TimeSeriesGetAsync(key); Assert.Equal(expected, actual); }
/// <summary> /// Example for basic usage of RedisTimeSeries MGET command with a filter. /// The NRedisTimeSeries SimpleMGetExample returns and IReadOnlyList<(string key, IReadOnlyList<TimeSeriesLabel> labels, TimeSeriesTuple value)> collection. /// </summary> public static async Task SimpleMGetAsyncExample() { ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost"); IDatabase db = redis.GetDatabase(); var filter = new List <string> { "key=value" }; var results = await db.TimeSeriesMGetAsync(filter); // Values extraction example. No lables in this case. foreach (var result in results) { string key = result.key; TimeSeriesTuple value = result.value; } redis.Close(); }
/// <summary> /// Example for basic usage of RedisTimeSeries MGET command with a filter and WITHLABELS flag. /// The NRedisTimeSeries SimpleMGetExample returns and IReadOnlyList<(string key, IReadOnlyList<TimeSeriesLabel> labels, TimeSeriesTuple value)> collection. /// </summary> public static async Task MGetWithLabelsAsyncExample() { ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost"); IDatabase db = redis.GetDatabase(); var filter = new List <string> { "key=value" }; var results = await db.TimeSeriesMGetAsync(filter, withLabels : true); // Values extraction example. foreach (var result in results) { string key = result.key; IReadOnlyList <TimeSeriesLabel> labels = result.labels; TimeSeriesTuple value = result.value; } redis.Close(); }
/// <summary> /// Example for basic usage of RedisTimeSeries MGET command with a filter. /// The NRedisTimeSeries SimpleMGetExample returns and IReadOnlyList<(string key, IReadOnlyList<TimeSeriesLabel> labels, TimeSeriesTuple value)> collection. /// </summary> public static void SimpleMGetExample() { ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost"); IDatabase db = redis.GetDatabase(); var filter = new List <string> { "key=value" }; var results = db.TimeSeriesMGet(filter); // Values extraction example. No lables in this case. foreach (var result in results) { Console.WriteLine(result.key); TimeSeriesTuple value = result.value; Console.WriteLine(value); } redis.Close(); }
private static IReadOnlyList <(string key, IReadOnlyList <TimeSeriesLabel> labels, TimeSeriesTuple value)> ParseMGetesponse(RedisResult result) { RedisResult[] redisResults = (RedisResult[])result; var list = new List <(string key, IReadOnlyList <TimeSeriesLabel> labels, TimeSeriesTuple values)>(redisResults.Length); if (redisResults.Length == 0) { return(list); } Array.ForEach(redisResults, MRangeValue => { RedisResult[] MRangeTuple = (RedisResult[])MRangeValue; string key = (string)MRangeTuple[0]; IReadOnlyList <TimeSeriesLabel> labels = ParseLabelArray(MRangeTuple[1]); TimeSeriesTuple value = ParseTimeSeriesTuple(MRangeTuple[2]); list.Add((key, labels, value)); }); return(list); }
protected override PLFPSA Aggregate(TimeSeries timeseries, TimeInterval interval) { var result = new PLFPSA(); TimeSeriesTuple prev = null; foreach (var next in timeseries) { if (prev != null) { var nextResult = new PLFPSA(new LinearFunction(prev, next), interval.Over(prev.Timestamp, next.Timestamp)); result = new PLFPSA(result, nextResult); } prev = next; } return(result); }
/// <summary> /// Example for basic usage of RedisTimeSeries MGET command with a filter and WITHLABELS flag. /// The NRedisTimeSeries SimpleMGetExample returns and IReadOnlyList<(string key, IReadOnlyList<TimeSeriesLabel> labels, TimeSeriesTuple value)> collection. /// </summary> public static void MGetWithLabelsExample() { ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost"); IDatabase db = redis.GetDatabase(); var filter = new List <string> { "key=value" }; var results = db.TimeSeriesMGet(filter, withLabels: true); // Values extraction example. foreach (var result in results) { Console.WriteLine(result.key); IReadOnlyList <TimeSeriesLabel> labels = result.labels; foreach (TimeSeriesLabel label in labels) { Console.WriteLine(label); } TimeSeriesTuple value = result.value; Console.WriteLine(value); } redis.Close(); }
protected override LinearFunction GetPiecewiseFunction(TimeSeriesTuple t1, TimeSeriesTuple t2) => new LinearFunction(t1, t2);
public void TestTupleToString() { TimeSeriesTuple tuple = new TimeSeriesTuple(1, 1.1); Assert.Equal("Time: 1, Val:1.1", (string)tuple); }