Esempio n. 1
0
        public void Cancellation_after_two_items___OK()
        {
            var sut      = new SwingingDoorCompression(1d);
            var data     = RawDataForTrendAsync();
            var expected = ExpectedForTrend().Take(2).ToList();
            var cts      = new CancellationTokenSource();

            var actual = new List <DataPoint>();
            int idx    = 0;

            Assert.ThrowsAsync <OperationCanceledException>(async() =>
            {
                await foreach (DataPoint dp in sut.ProcessAsync(data).WithCancellation(cts.Token))
                {
                    actual.Add(dp);
                    idx++;

                    if (idx == 2)
                    {
                        cts.Cancel();
                    }
                }
            });

            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 2
0
        public async Task Cancellation___OK()
        {
            var sut      = new SwingingDoorCompression(1d);
            var data     = RawDataAsync(RawDataForTrend());
            var expected = ExpectedForTrend().Take(2).ToList();

            DataPointIterator dataPointIterator = sut.ProcessAsync(data);
            var cts        = new CancellationTokenSource();
            var enumerator = dataPointIterator.GetAsyncEnumerator(cts.Token);

            var actual = new List <DataPoint>();
            await enumerator.MoveNextAsync();

            actual.Add(enumerator.Current);
            await enumerator.MoveNextAsync();

            actual.Add(enumerator.Current);
            cts.Cancel();

            List <DataPoint> res = null;

            Assert.ThrowsAsync <OperationCanceledException>(async() => res = await dataPointIterator.ToListAsync(cts.Token));

            CollectionAssert.AreEqual(expected, actual);
            Assert.IsNull(res);
        }
Esempio n. 3
0
        public void Known_sequence___correct_result()
        {
            var sut      = new SwingingDoorCompression(1);
            var data     = KnownSequence();
            var iterator = sut.Process(data).GetEnumerator();
            var expected = KnownSequenceExpected().ToArray();

            Assert.Multiple(() =>
            {
                int step = 0;
                Assert.IsTrue(iterator.MoveNext(), $"MoveNext step: {step}");
                Assert.AreEqual(expected[step], iterator.Current, $"Equal step: {step}");
                step++;
                Assert.IsTrue(iterator.MoveNext(), $"MoveNext step: {step}");
                Assert.AreEqual(expected[step], iterator.Current, $"Equal step: {step}");
                step++;
                Assert.IsTrue(iterator.MoveNext(), $"MoveNext step: {step}");
                Assert.AreEqual(expected[step], iterator.Current, $"Equal step: {step}");
                step++;
                Assert.IsTrue(iterator.MoveNext(), $"MoveNext step: {step}");
                Assert.AreEqual(expected[step], iterator.Current, $"Equal step: {step}");
                step++;
                Assert.IsFalse(iterator.MoveNext(), $"MoveNext step: {step++}");
            });
        }
Esempio n. 4
0
        public void Cloning_iterates_over_fresh_set()
        {
            var sut      = new SwingingDoorCompression(1);
            var data     = KnownSequence().ToArray().Select(dp => dp);
            var expected = KnownSequence().ToArray();
            var filter   = sut.Process(data);

            var iterator = filter.GetEnumerator();

            iterator.MoveNext();

            iterator = filter.Clone().GetEnumerator();

            Assert.Multiple(() =>
            {
                int step = 0;
                Assert.IsTrue(iterator.MoveNext(), $"MoveNext step: {step}");
                Assert.AreEqual(expected[step], iterator.Current, $"Equal step: {step}");
                step++;
                Assert.IsTrue(iterator.MoveNext(), $"MoveNext step: {step}");
                Assert.AreEqual(expected[step], iterator.Current, $"Equal step: {step}");
                step++;
                Assert.IsTrue(iterator.MoveNext(), $"MoveNext step: {step}");
                Assert.AreEqual(expected[step], iterator.Current, $"Equal step: {step}");
                step++;
                Assert.IsFalse(iterator.MoveNext(), $"MoveNext step: {step++}");
            });
        }
Esempio n. 5
0
        public void Empty_Array___empty_result()
        {
            var sut      = new SwingingDoorCompression(1);
            var data     = Array.Empty <DataPoint>();
            var iterator = sut.Process(data).GetEnumerator();

            Assert.IsFalse(iterator.MoveNext());
        }
Esempio n. 6
0
        public void Empty_IEnumerable___empty_result()
        {
            var sut      = new SwingingDoorCompression(1);
            var data     = Empty();
            var iterator = sut.Process(data).GetEnumerator();

            Assert.IsFalse(iterator.MoveNext());
        }
Esempio n. 7
0
        public async Task Empty_IAsyncEnumerable___empty_result()
        {
            var sut      = new SwingingDoorCompression(1);
            var data     = EmptyAsync();
            var iterator = sut.ProcessAsync(data).GetAsyncEnumerator();

            Assert.IsFalse(await iterator.MoveNextAsync());
        }
Esempio n. 8
0
        public void Indexed_MoveNext_without_GetEnumerator___throws_InvalidOperation()
        {
            var sut  = new SwingingDoorCompression(1);
            var data = RawDataForTrend().ToArray();

            var iterator = sut.Process(data);

            Assert.Throws <InvalidOperationException>(() => iterator.MoveNext());
        }
Esempio n. 9
0
        public async Task Empty_IAsyncEnumerable___empty_result()
        {
            var sut  = new SwingingDoorCompression(1d);
            var data = EmptyAsync();

            var actual = sut.ProcessAsync(data);

            Assert.AreEqual(0, (await actual.ToListAsync()).Count);
        }
 //-----------------------------------------------------------------
 public EnumerableIterator(
     SwingingDoorCompression swingingDoorCompression,
     IEnumerable <DataPoint> source,
     IEnumerator <DataPoint> enumerator)
     : base(swingingDoorCompression)
 {
     _source     = source;
     _enumerator = enumerator;
 }
Esempio n. 11
0
        public void Data_given_as_ListWrapper___OK()
        {
            var sut      = new SwingingDoorCompression(1d);
            var data     = new ListWrapper <DataPoint>(RawDataForTrend().ToList());
            var expected = ExpectedForTrend().ToList();

            var actual = sut.Process(data).ToArray();

            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 12
0
        public void Empty_Array___empty_result()
        {
            var sut  = new SwingingDoorCompression(1d);
            var data = new DataPoint[0];

            var actual = sut.Process(data);

            Assert.AreSame(Array.Empty <DataPoint>(), actual.ToArray());
            Assert.AreEqual(0, actual.ToList().Count);
        }
Esempio n. 13
0
        public void Data_given_as_IList___OK()
        {
            var sut      = new SwingingDoorCompression(1d);
            var data     = RawDataForTrend().ToList().AsReadOnly();
            var expected = ExpectedForTrend().ToList();

            var actual = sut.Process(data).ToArray();

            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 14
0
        public async Task Data_given_as_IAsyncEnumerable___OK()
        {
            var sut      = new SwingingDoorCompression(1d);
            var data     = RawDataForTrendAsync();
            var expected = ExpectedForTrend().ToList();

            var actual = await sut.ProcessAsync(data).ToListAsync();

            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 15
0
        public async Task Data_given_as_IAsyncEnumerable___OK(double compressionDeviation, IAsyncEnumerable <DataPoint> rawData, IEnumerable <DataPoint> expectedData)
        {
            var sut      = new SwingingDoorCompression(compressionDeviation);
            var data     = rawData;
            var expected = expectedData.ToList();

            var actual = await sut.ProcessAsync(data).ToListAsync();

            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 16
0
        public async Task Data_IAsyncEnumerable_with_maxDeltaX___OK()
        {
            var sut      = new SwingingDoorCompression(1d, 6d);
            var data     = RawDataAsync(RawDataForMaxDelta());
            var expected = ExpectedForMaxDelta().ToList();

            var actual = await sut.ProcessAsync(data).ToListAsync();

            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 17
0
        public void Data_IList_with_maxDeltaX___OK()
        {
            var sut      = new SwingingDoorCompression(1d, 6d);
            var data     = RawDataForMaxDelta().ToList().AsReadOnly();
            var expected = ExpectedForMaxDelta().ToList();

            var actual = sut.Process(data).ToArray();

            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 18
0
        public void One_DataPoint_IEnumerable___OK()
        {
            var sut      = new SwingingDoorCompression(1d);
            var data     = RawDataForMaxDelta().Take(1);
            var expected = RawDataForMaxDelta().Take(1).ToList();

            var actual = sut.Process(data).ToArray();

            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 19
0
        public void Two_DataPoint_IList___OK()
        {
            var sut      = new SwingingDoorCompression(1d);
            var data     = RawDataForMaxDelta().Take(2).ToList().AsReadOnly();
            var expected = RawDataForMaxDelta().Take(2).ToList();

            var actual = sut.Process(data).ToList();

            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 20
0
        public void MinDeltaX_IList___OK()
        {
            var sut      = new SwingingDoorCompression(1d, minDeltaX: 1d);
            var data     = RawMinDeltaX().ToList().AsReadOnly();
            var expected = ExpectedMinDeltaX().ToList();

            var actual = sut.Process(data).ToArray();

            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 21
0
        public void CompressionDeviation_0_as_array___input_echoed()
        {
            var sut      = new SwingingDoorCompression(0);
            var data     = KnownSequence().ToArray();
            var result   = sut.Process(data);
            var expected = KnownSequence().ToArray();

            var actual = result.ToArray();

            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 22
0
        public void Known_sequence_with_constant_part_ToArray____correct_result()
        {
            var sut      = new SwingingDoorCompression(1);
            var data     = KnownSequenceWithConstantPart();
            var result   = sut.Process(data);
            var expected = KnownSequenceWithConstantPartExpected().ToArray();

            var actual = result.ToArray();

            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 23
0
        public void Data_List_with_maxDeltaX___OK()
        {
            var sut      = new SwingingDoorCompression(1d, 6d);
            var data     = RawDataForMaxDelta().ToList();
            var expected = ExpectedForMaxDelta().ToList();

            var actual = sut.Process(data).ToList();

            Print(expected, "expected");
            Print(actual, "actual");
            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 24
0
        public void Data_given_as_IList___OK(double compressionDeviation, IEnumerable <DataPoint> rawData, IEnumerable <DataPoint> expectedData)
        {
            var sut      = new SwingingDoorCompression(compressionDeviation);
            var data     = rawData.ToList().AsReadOnly();
            var expected = expectedData.ToList();

            var actual = sut.Process(data).ToList();

            Print(expected, "expected");
            Print(actual, "actual");
            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 25
0
        public void MinDeltaX_List___OK()
        {
            var sut      = new SwingingDoorCompression(1d, minDeltaX: 1d);
            var data     = RawMinDeltaX().ToList();
            var expected = ExpectedMinDeltaX().ToList();

            var actual = sut.Process(data).ToList();

            Print(expected, "expected");
            Print(actual, "actual");
            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 26
0
        public void Two_DataPoints_IEnumerable___OK()
        {
            var sut      = new SwingingDoorCompression(1d);
            var data     = RawDataForMaxDelta().Take(2);
            var expected = RawDataForMaxDelta().Take(2).ToList();

            var actual = sut.Process(data).ToList();

            Print(expected, "expected");
            Print(actual, "actual");
            CollectionAssert.AreEqual(expected, actual);
        }
Esempio n. 27
0
        public async Task Data_IAsyncEnumerable_with_minDeltaX_ToArray___OK()
        {
            int currentRawMinDeltaXCount = RawMinDeltaXCounter;

            var sut      = new SwingingDoorCompression(1d, minDeltaX: 1d);
            var data     = RawMinDeltaXAsync();
            var expected = ExpectedMinDeltaX().ToList();

            var actual = await sut.ProcessAsync(data).ToArrayAsync();

            CollectionAssert.AreEqual(expected, actual);
            Assert.AreEqual(currentRawMinDeltaXCount + 1, RawMinDeltaXCounter);
        }
Esempio n. 28
0
        public void Empty_IList___OK()
        {
            var sut  = new SwingingDoorCompression(1d);
            var data = KnownSequence().Take(0).ToList().AsReadOnly();

            var actual = new List <DataPoint>();

            foreach (DataPoint dp in sut.Process(data))
            {
                actual.Add(dp);
            }

            Assert.AreEqual(0, actual.Count);
        }
Esempio n. 29
0
        public void Empty_IEnumerable_foreach___empty_result()
        {
            var sut  = new SwingingDoorCompression(1);
            var data = Empty();

            int count = 0;

            foreach (DataPoint dp in sut.Process(data))
            {
                count++;
            }

            Assert.AreEqual(0, count);
        }
Esempio n. 30
0
        public async Task Empty_IAsyncEnumerable_foreach___empty_result()
        {
            var sut  = new SwingingDoorCompression(1);
            var data = EmptyAsync();

            int count = 0;

            await foreach (DataPoint db in sut.ProcessAsync(data))
            {
                count++;
            }

            Assert.AreEqual(0, count);
        }