diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 4d0ddcf9..618b362d 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -16,6 +16,19 @@ env: jobs: + windows: + name: windows + runs-on: windows-latest + steps: + - uses: actions/checkout@v3 + - name: run redis-stack-server docker + run: docker run -p 6379:6379 -d redis/redis-stack-server:edge + - name: Restore dependencies + run: dotnet restore + - name: Build + run: dotnet build --no-restore /p:ContinuousIntegrationBuild=true + - name: Test + run: dotnet test --no-build --verbosity normal -f net481 build_and_test: name: Build and test runs-on: ubuntu-latest @@ -35,8 +48,10 @@ jobs: run: dotnet restore - name: Build run: dotnet build --no-restore /p:ContinuousIntegrationBuild=true + - name: Test + run: dotnet test -f net6.0 --no-build --verbosity normal /p:CollectCoverage=true /p:CoverletOutputFormat=opencover - name: Test - run: dotnet test --no-build --verbosity normal /p:CollectCoverage=true /p:CoverletOutputFormat=opencover + run: dotnet test -f net7.0 --no-build --verbosity normal /p:CollectCoverage=true /p:CoverletOutputFormat=opencover - name: Codecov uses: codecov/codecov-action@v3 with: diff --git a/src/NRedisStack/ResponseParser.cs b/src/NRedisStack/ResponseParser.cs index d96c20fd..a8b0fd85 100644 --- a/src/NRedisStack/ResponseParser.cs +++ b/src/NRedisStack/ResponseParser.cs @@ -47,6 +47,8 @@ public static long ToLong(this RedisResult result) public static double ToDouble(this RedisResult result) { + if (result.ToString() == "nan") + return double.NaN; if ((double?)result == null) throw new ArgumentNullException(nameof(result)); return (double)result; diff --git a/src/NRedisStack/Tdigest/TdigestCommands.cs b/src/NRedisStack/Tdigest/TdigestCommands.cs index 9ee9fd56..72d5f847 100644 --- a/src/NRedisStack/Tdigest/TdigestCommands.cs +++ b/src/NRedisStack/Tdigest/TdigestCommands.cs @@ -44,7 +44,9 @@ public double Max(RedisKey key) /// public double Min(RedisKey key) { - return _db.Execute(TdigestCommandBuilder.Min(key)).ToDouble(); + var cmd = TdigestCommandBuilder.Min(key); + var res =_db.Execute(cmd); + return res.ToDouble(); } /// diff --git a/tests/NRedisStack.Tests/NRedisStack.Tests.csproj b/tests/NRedisStack.Tests/NRedisStack.Tests.csproj index 01c824f8..d2cc16f6 100644 --- a/tests/NRedisStack.Tests/NRedisStack.Tests.csproj +++ b/tests/NRedisStack.Tests/NRedisStack.Tests.csproj @@ -1,9 +1,10 @@ - net6.0;net7.0 + net6.0;net7.0;net462 enable enable + latest false diff --git a/tests/NRedisStack.Tests/Tdigest/TdigestTests.cs b/tests/NRedisStack.Tests/Tdigest/TdigestTests.cs index eb8d43a1..c1592a66 100644 --- a/tests/NRedisStack.Tests/Tdigest/TdigestTests.cs +++ b/tests/NRedisStack.Tests/Tdigest/TdigestTests.cs @@ -666,7 +666,7 @@ static Tuple RandomValueWeight() { Random random = new Random(); - return new Tuple(random.NextDouble() * 10000, random.NextInt64() + 1); + return new Tuple(random.NextDouble() * 10000, random.Next() + 1); } static Tuple[] RandomValueWeightArray(int count) @@ -687,7 +687,11 @@ static Tuple DefinedValueWeight(double value, long weight) private static double[] WeightedValue(double value, int weight) { double[] values = new double[weight]; - Array.Fill(values, value); + for (var i = 0; i < values.Length; i++) + { + values[i] = value; + } + return values; } } diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMADD.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMADD.cs index 83920a69..5aa329bd 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMADD.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMADD.cs @@ -1,4 +1,5 @@ using NRedisStack.DataTypes; +using NRedisStack.Literals.Enums; using NRedisStack.RedisStackCommands; using StackExchange.Redis; using Xunit; @@ -88,7 +89,7 @@ public void TestOverrideMADD() foreach (string key in keys) { - ts.Create(key); + ts.Create(key, duplicatePolicy: TsDuplicatePolicy.MAX); } List oldTimeStamps = new List(); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMAddAsync.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMAddAsync.cs index 5c7fa550..7778accf 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMAddAsync.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMAddAsync.cs @@ -1,4 +1,5 @@ using NRedisStack.DataTypes; +using NRedisStack.Literals.Enums; using NRedisStack.RedisStackCommands; using StackExchange.Redis; using Xunit; @@ -82,7 +83,7 @@ public async Task TestOverrideMAdd() foreach (var key in keys) { - await ts.CreateAsync(key); + await ts.CreateAsync(key, duplicatePolicy: TsDuplicatePolicy.MAX); } var oldTimeStamps = new List();