Exemplo n.º 1
0
        public void TestTupleConstructor()
        {
            TimeSeriesTuple tuple = new TimeSeriesTuple(1, 1.1);

            Assert.Equal(1, tuple.Time);
            Assert.Equal(1.1, tuple.Val);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        /// <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();
        }
Exemplo n.º 5
0
        /// <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();
        }
Exemplo n.º 6
0
        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());
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        /// <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();
        }
Exemplo n.º 11
0
        /// <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();
        }
Exemplo n.º 12
0
        /// <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);
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        /// <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();
        }
Exemplo n.º 16
0
 protected override LinearFunction GetPiecewiseFunction(TimeSeriesTuple t1, TimeSeriesTuple t2) => new LinearFunction(t1, t2);
Exemplo n.º 17
0
        public void TestTupleToString()
        {
            TimeSeriesTuple tuple = new TimeSeriesTuple(1, 1.1);

            Assert.Equal("Time: 1, Val:1.1", (string)tuple);
        }