Skip to content

Commit 752a2a7

Browse files
committed
add integration test for GetExtractedRanges
1 parent fc5b066 commit 752a2a7

File tree

1 file changed

+89
-20
lines changed

1 file changed

+89
-20
lines changed

ExtractorUtils.Test/integration/TimeSeriesIntegrationTest.cs

Lines changed: 89 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using System.Collections.Generic;
99
using System.Linq;
1010
using System.Reflection;
11-
using System.Text;
1211
using System.Threading.Tasks;
1312
using Xunit;
1413
using Xunit.Abstractions;
@@ -577,27 +576,14 @@ await tester.Destination.CogniteClient.TimeSeries.DeleteAsync(new TimeSeriesDele
577576
}
578577
}
579578

580-
private async Task<(string extId, long id)[]> CreateTestTimeSeries(CDFTester tester)
579+
private async Task<(string extId, long id)[]> CreateTestTimeSeries(CDFTester tester, int count = 3)
581580
{
582-
var timeseries = new[]
581+
var timeseries = Enumerable.Range(1, count).Select(i => new TimeSeriesCreate
583582
{
584-
new TimeSeriesCreate
585-
{
586-
Name = "utils-test-ts-1",
587-
ExternalId = $"{tester.Prefix} utils-test-ts-1"
588-
},
589-
new TimeSeriesCreate
590-
{
591-
Name = "utils-test-ts-2",
592-
ExternalId = $"{tester.Prefix} utils-test-ts-2",
593-
IsString = true
594-
},
595-
new TimeSeriesCreate
596-
{
597-
Name = "utils-test-ts-3",
598-
ExternalId = $"{tester.Prefix} utils-test-ts-3"
599-
}
600-
};
583+
Name = $"utils-test-ts-{i}",
584+
ExternalId = $"{tester.Prefix} utils-test-ts-{i}",
585+
IsString = i % 2 == 0
586+
}).ToArray();
601587

602588
var result = await tester.Destination.EnsureTimeSeriesExistsAsync(timeseries, RetryMode.None, SanitationMode.None, tester.Source.Token);
603589
return result.Results.Select(ts => (ts.ExternalId, ts.Id)).ToArray();
@@ -985,6 +971,89 @@ await tester.Destination.CogniteClient.TimeSeries.DeleteAsync(new TimeSeriesDele
985971
}
986972
}
987973

974+
[Theory]
975+
[InlineData(CogniteHost.GreenField)]
976+
[InlineData(CogniteHost.BlueField)]
977+
public async Task TestGetExtractedRanges(CogniteHost host)
978+
{
979+
using var tester = new CDFTester(host, _output);
980+
981+
var tss = await CreateTestTimeSeries(tester, 5);
982+
var identities = tss.Select(x => Identity.Create(x.extId)).ToArray();
983+
var now = DateTime.UtcNow;
984+
985+
var dps = new Dictionary<Identity, IEnumerable<Datapoint>>()
986+
{
987+
{ identities[0], new[]
988+
{
989+
new Datapoint(now.AddSeconds(-20), Double.NaN, StatusCode.Bad),
990+
new Datapoint(now.AddSeconds(-10), 1.0),
991+
new Datapoint(now, Double.NaN, StatusCode.Bad),
992+
}
993+
},
994+
{ identities[1], new[]
995+
{
996+
new Datapoint(now.AddSeconds(-20), null, StatusCode.Bad),
997+
new Datapoint(now.AddSeconds(-10), "value"),
998+
new Datapoint(now, null, StatusCode.Bad),
999+
}
1000+
},
1001+
{ identities[2], new[]
1002+
{
1003+
new Datapoint(now.AddSeconds(-20), Double.NegativeInfinity, StatusCode.Bad),
1004+
new Datapoint(now.AddSeconds(-10), 1.0),
1005+
new Datapoint(now, Double.NegativeInfinity, StatusCode.Bad),
1006+
}
1007+
},
1008+
{ identities[3], new[]
1009+
{
1010+
new Datapoint(now.AddSeconds(-20), null, StatusCode.Bad),
1011+
new Datapoint(now.AddSeconds(-10), "value"),
1012+
new Datapoint(now, null, StatusCode.Bad),
1013+
}
1014+
},
1015+
{ identities[4], new[]
1016+
{
1017+
new Datapoint(now.AddSeconds(-20), Double.PositiveInfinity, StatusCode.Bad),
1018+
new Datapoint(now.AddSeconds(-10), 1.0),
1019+
new Datapoint(now, Double.PositiveInfinity, StatusCode.Bad),
1020+
}
1021+
},
1022+
};
1023+
1024+
try
1025+
{
1026+
await tester.Destination.InsertDataPointsAsync(dps, SanitationMode.None, RetryMode.None, tester.Source.Token);
1027+
1028+
var result = await tester.Destination.GetExtractedRanges(identities, tester.Source.Token, ignoreBadDataPoints: false);
1029+
1030+
Assert.Equal(5, result.Count);
1031+
var hashedIdentities = identities.ToHashSet();
1032+
foreach (var item in result)
1033+
{
1034+
Assert.Contains(item.Key, hashedIdentities);
1035+
Assert.Equal(now.ToISOString(), item.Value.Last.ToISOString());
1036+
Assert.Equal(now.AddSeconds(-20).ToISOString(), item.Value.First.ToISOString());
1037+
}
9881038

1039+
result = await tester.Destination.GetExtractedRanges(identities, tester.Source.Token, ignoreBadDataPoints: true);
1040+
1041+
Assert.Equal(5, result.Count);
1042+
foreach (var item in result)
1043+
{
1044+
Assert.Contains(item.Key, hashedIdentities);
1045+
Assert.Equal(now.AddSeconds(-10).ToISOString(), item.Value.Last.ToISOString());
1046+
Assert.Equal(now.AddSeconds(-10).ToISOString(), item.Value.First.ToISOString());
1047+
}
1048+
}
1049+
finally
1050+
{
1051+
await tester.Destination.CogniteClient.TimeSeries.DeleteAsync(new TimeSeriesDelete
1052+
{
1053+
IgnoreUnknownIds = true,
1054+
Items = identities
1055+
});
1056+
}
1057+
}
9891058
}
9901059
}

0 commit comments

Comments
 (0)