public async Task DeserializeAsync_WithOneAxisAndSomeValuesAndOneValueDifferent_ReturnsTheValuesAsync() { var deserializer = new ContentDeserializer(); var header = new HeaderBuilder() .WithContentDataType(DataContentType.INTEGER) .WithNumberOfAxis(1) .WithAxisOfSize(dimensionIndex: 1, size: 10) .Build(); var dataStream = new ContentStreamBuilder() .WithDataBeingInitializedWith(123, header) .WithDataAtCoordinates( 10, new Dictionary <uint, ulong> { { 0, 5 } }, header) .Build(); var deserilaizedContent = await deserializer.DeserializeAsync(PipeReader.Create(dataStream), header); deserilaizedContent.Should().NotBeNull(); deserilaizedContent.Value.ToArray().Should().HaveCount(10); deserilaizedContent.Value.Span[4].Should().Equals(10); deserilaizedContent.Value.ToArray().Select((d, i) => (i, d)).Where(d => d.i != 5).All(d => (int)d.d == 123).Should().BeTrue(); }
public async Task DeserializeAsync_WithNoContent_ReturnsNullAsync() { var deserializer = new ContentDeserializer(); var header = new HeaderBuilder() .WithNumberOfAxis(0) .Build(); var dataStream = new ContentStreamBuilder() .WithEmptyContent() .Build(); var deserilaizedContent = await deserializer.DeserializeAsync(PipeReader.Create(dataStream), header); deserilaizedContent.Should().BeNull(); }
public async Task DeserializeAsync_WithDataOfTypeDouble_ReturnsTheValuesAsync() { var deserializer = new ContentDeserializer(); var header = new HeaderBuilder() .WithContentDataType(DataContentType.DOUBLE) .WithNumberOfAxis(1) .WithAxisOfSize(dimensionIndex: 1, size: 10) .Build(); var dataStream = new ContentStreamBuilder() .WithDataBeingInitializedWith((double)123, header) .Build(); var deserilaizedContent = await deserializer.DeserializeAsync(PipeReader.Create(dataStream), header); deserilaizedContent.Should().NotBeNull(); deserilaizedContent.Value.ToArray().Should().HaveCount(10); deserilaizedContent.Value.ToArray().All(d => (double)d == 123).Should().BeTrue(); }
public async Task DeserializeAsync_WithTwoAxisAndDefaultValues_ReturnsAllValuesAsync() { var deserializer = new ContentDeserializer(); var header = new HeaderBuilder() .WithContentDataType(DataContentType.INTEGER) .WithNumberOfAxis(2) .WithAxisOfSize(dimensionIndex: 1, size: 10) .WithAxisOfSize(dimensionIndex: 2, size: 20) .Build(); var dataStream = new ContentStreamBuilder() .WithDataBeingInitializedWith(123, header) .Build(); var deserilaizedContent = await deserializer.DeserializeAsync(PipeReader.Create(dataStream), header); deserilaizedContent.Should().NotBeNull(); deserilaizedContent.Value.ToArray().Should().HaveCount(10 * 20); deserilaizedContent.Value.ToArray().All(d => (int)d == 123).Should().BeTrue(); }