From ed387e0fa9c060de14867bd6d90508faec2e538c Mon Sep 17 00:00:00 2001 From: Bart De Smet Date: Mon, 23 Sep 2019 12:50:50 -0700 Subject: [PATCH] Remove duplicate test files. --- .../System.Interactive.Tests/BufferTest.cs | 88 ------ .../System.Interactive.Tests/CaseTest.cs | 89 ------ .../System.Interactive.Tests/CatchTest.cs | 210 ------------- .../System.Interactive.Tests/ConcatTest.cs | 63 ---- .../System.Interactive.Tests/CreateTest.cs | 119 -------- .../System.Interactive.Tests/DeferTest.cs | 53 ---- .../System.Interactive.Tests/DistinctTest.cs | 52 ---- .../DistinctUntilChangedTest.cs | 42 --- .../Source/System.Interactive.Tests/DoTest.cs | 103 ------- .../System.Interactive.Tests/DoWhileTest.cs | 38 --- .../System.Interactive.Tests/ExpandTest.cs | 43 --- .../System.Interactive.Tests/FinallyTest.cs | 86 ------ .../System.Interactive.Tests/ForEachTest.cs | 40 --- .../System.Interactive.Tests/ForTest.cs | 27 -- .../System.Interactive.Tests/GenerateTest.cs | 30 -- .../System.Interactive.Tests/HideTest.cs | 30 -- .../Source/System.Interactive.Tests/IfTest.cs | 49 --- .../IgnoreElementsTest.cs | 29 -- .../System.Interactive.Tests/IsEmptyTest.cs | 33 -- .../System.Interactive.Tests/MaxByTest.cs | 36 --- .../System.Interactive.Tests/MaxTest.cs | 36 --- .../System.Interactive.Tests/MemoizeTest.cs | 273 ----------------- .../System.Interactive.Tests/MinByTest.cs | 38 --- .../System.Interactive.Tests/MinTest.cs | 36 --- .../System.Interactive.Tests/NopObserver.cs | 23 -- .../OnErrorResumeNextTest.cs | 86 ------ .../System.Interactive.Tests/PublishTest.cs | 284 ------------------ .../QueryableParityTest.cs | 163 ---------- .../System.Interactive.Tests/RepeatTest.cs | 55 ---- .../System.Interactive.Tests/RetryTest.cs | 55 ---- .../System.Interactive.Tests/ReturnTest.cs | 21 -- .../System.Interactive.Tests/ScanTest.cs | 36 --- .../SelectManyTest.cs | 27 -- .../System.Interactive.Tests/ShareTest.cs | 125 -------- .../System.Interactive.Tests/SkipLastTest.cs | 58 ---- .../System.Interactive.Tests/StartWithTest.cs | 38 --- .../System.Interactive.Tests/TakeLastTest.cs | 73 ----- .../System.Interactive.Tests/ThrowTest.cs | 31 -- .../System.Interactive.Tests/UsingTest.cs | 75 ----- .../System.Interactive.Tests/WhileTest.cs | 38 --- 40 files changed, 2831 deletions(-) delete mode 100644 Ix.NET/Source/System.Interactive.Tests/BufferTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/CaseTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/CatchTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/ConcatTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/CreateTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/DeferTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/DistinctTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/DistinctUntilChangedTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/DoTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/DoWhileTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/ExpandTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/FinallyTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/ForEachTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/ForTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/GenerateTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/HideTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/IfTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/IgnoreElementsTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/IsEmptyTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/MaxByTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/MaxTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/MemoizeTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/MinByTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/MinTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/NopObserver.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/OnErrorResumeNextTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/PublishTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/QueryableParityTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/RepeatTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/RetryTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/ReturnTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/ScanTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/SelectManyTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/ShareTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/SkipLastTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/StartWithTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/TakeLastTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/ThrowTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/UsingTest.cs delete mode 100644 Ix.NET/Source/System.Interactive.Tests/WhileTest.cs diff --git a/Ix.NET/Source/System.Interactive.Tests/BufferTest.cs b/Ix.NET/Source/System.Interactive.Tests/BufferTest.cs deleted file mode 100644 index fead1a4fb6..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/BufferTest.cs +++ /dev/null @@ -1,88 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class BufferTest : Tests - { - [Fact] - public void Buffer_Arguments() - { - AssertThrows(() => EnumerableEx.Buffer(null, 5)); - AssertThrows(() => EnumerableEx.Buffer(null, 5, 3)); - AssertThrows(() => EnumerableEx.Buffer(new[] { 1 }, 0)); - AssertThrows(() => EnumerableEx.Buffer(new[] { 1 }, 5, 0)); - AssertThrows(() => EnumerableEx.Buffer(new[] { 1 }, 0, 3)); - } - - [Fact] - public void Buffer1() - { - var rng = Enumerable.Range(0, 10); - - var res = rng.Buffer(3).ToList(); - Assert.Equal(4, res.Count); - - Assert.True(res[0].SequenceEqual(new[] { 0, 1, 2 })); - Assert.True(res[1].SequenceEqual(new[] { 3, 4, 5 })); - Assert.True(res[2].SequenceEqual(new[] { 6, 7, 8 })); - Assert.True(res[3].SequenceEqual(new[] { 9 })); - } - - [Fact] - public void Buffer2() - { - var rng = Enumerable.Range(0, 10); - - var res = rng.Buffer(5).ToList(); - Assert.Equal(2, res.Count); - - Assert.True(res[0].SequenceEqual(new[] { 0, 1, 2, 3, 4 })); - Assert.True(res[1].SequenceEqual(new[] { 5, 6, 7, 8, 9 })); - } - - [Fact] - public void Buffer3() - { - var rng = Enumerable.Empty(); - - var res = rng.Buffer(5).ToList(); - Assert.Empty(res); - } - - [Fact] - public void Buffer4() - { - var rng = Enumerable.Range(0, 10); - - var res = rng.Buffer(3, 2).ToList(); - Assert.Equal(5, res.Count); - - Assert.True(res[0].SequenceEqual(new[] { 0, 1, 2 })); - Assert.True(res[1].SequenceEqual(new[] { 2, 3, 4 })); - Assert.True(res[2].SequenceEqual(new[] { 4, 5, 6 })); - Assert.True(res[3].SequenceEqual(new[] { 6, 7, 8 })); - Assert.True(res[4].SequenceEqual(new[] { 8, 9 })); - } - - [Fact] - public void Buffer5() - { - var rng = Enumerable.Range(0, 10); - - var res = rng.Buffer(3, 4).ToList(); - Assert.Equal(3, res.Count); - - Assert.True(res[0].SequenceEqual(new[] { 0, 1, 2 })); - Assert.True(res[1].SequenceEqual(new[] { 4, 5, 6 })); - Assert.True(res[2].SequenceEqual(new[] { 8, 9 })); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/CaseTest.cs b/Ix.NET/Source/System.Interactive.Tests/CaseTest.cs deleted file mode 100644 index f51641df2c..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/CaseTest.cs +++ /dev/null @@ -1,89 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class CaseTest : Tests - { - [Fact] - public void Case_Arguments() - { - AssertThrows(() => EnumerableEx.Case(null, new Dictionary>())); - AssertThrows(() => EnumerableEx.Case(() => 1, null)); - AssertThrows(() => EnumerableEx.Case(null, new Dictionary>(), new[] { 1 })); - AssertThrows(() => EnumerableEx.Case(() => 1, null, new[] { 1 })); - AssertThrows(() => EnumerableEx.Case(() => 1, new Dictionary>(), null)); - } - - [Fact] - public void Case1() - { - var x = 1; - var d = 'd'; - var res = EnumerableEx.Case(() => x, new Dictionary> - { - { 0, new[] { 'a' } }, - { 1, new[] { 'b' } }, - { 2, new[] { 'c' } }, - { 3, EnumerableEx.Defer(() => new[] { d }) }, - }); - - Assert.Equal('b', res.Single()); - Assert.Equal('b', res.Single()); - - x = 0; - Assert.Equal('a', res.Single()); - - x = 2; - Assert.Equal('c', res.Single()); - - x = 3; - Assert.Equal('d', res.Single()); - - d = 'e'; - Assert.Equal('e', res.Single()); - - x = 4; - Assert.True(res.IsEmpty()); - } - - [Fact] - public void Case2() - { - var x = 1; - var d = 'd'; - var res = EnumerableEx.Case(() => x, new Dictionary> - { - { 0, new[] { 'a' } }, - { 1, new[] { 'b' } }, - { 2, new[] { 'c' } }, - { 3, EnumerableEx.Defer(() => new[] { d }) }, - }, new[] { 'z' }); - - Assert.Equal('b', res.Single()); - Assert.Equal('b', res.Single()); - - x = 0; - Assert.Equal('a', res.Single()); - - x = 2; - Assert.Equal('c', res.Single()); - - x = 3; - Assert.Equal('d', res.Single()); - - d = 'e'; - Assert.Equal('e', res.Single()); - - x = 4; - Assert.Equal('z', res.Single()); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/CatchTest.cs b/Ix.NET/Source/System.Interactive.Tests/CatchTest.cs deleted file mode 100644 index 70f7d4c1d8..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/CatchTest.cs +++ /dev/null @@ -1,210 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class CatchTest : Tests - { - [Fact] - public void Catch_Arguments() - { - AssertThrows(() => EnumerableEx.Catch(null, new[] { 1 })); - AssertThrows(() => EnumerableEx.Catch(new[] { 1 }, null)); - AssertThrows(() => EnumerableEx.Catch(default)); - AssertThrows(() => EnumerableEx.Catch(default(IEnumerable>))); - AssertThrows(() => EnumerableEx.Catch(null, ex => new[] { 1 })); - AssertThrows(() => EnumerableEx.Catch(new[] { 1 }, null)); - } - - [Fact] - public void Catch1() - { - var ex = new MyException(); - var res = EnumerableEx.Throw(ex).Catch(e => { Assert.Same(ex, e); return new[] { 42 }; }).Single(); - Assert.Equal(42, res); - } - - [Fact] - public void Catch2() - { - var ex = new MyException(); - var res = EnumerableEx.Throw(ex).Catch(e => { Assert.Same(ex, e); return new[] { 42 }; }).Single(); - Assert.Equal(42, res); - } - - [Fact] - public void Catch3() - { - var ex = new MyException(); - AssertThrows(() => - { - EnumerableEx.Throw(ex).Catch(e => { Assert.True(false); return new[] { 42 }; }).Single(); - }); - } - - [Fact] - public void Catch4() - { - var xs = Enumerable.Range(0, 10); - var res = xs.Catch(e => { Assert.True(false); return new[] { 42 }; }); - Assert.True(xs.SequenceEqual(res)); - } - - [Fact] - public void Catch5() - { - var xss = new[] { Enumerable.Range(0, 5), Enumerable.Range(5, 5) }; - var res = EnumerableEx.Catch(xss); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 5))); - } - - [Fact] - public void Catch6() - { - var xss = new[] { Enumerable.Range(0, 5), Enumerable.Range(5, 5) }; - var res = xss.Catch(); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 5))); - } - - [Fact] - public void Catch7() - { - var xss = new[] { Enumerable.Range(0, 5), Enumerable.Range(5, 5) }; - var res = xss[0].Catch(xss[1]); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 5))); - } - - [Fact] - public void Catch8() - { - var xss = new[] { Enumerable.Range(0, 5).Concat(EnumerableEx.Throw(new MyException())), Enumerable.Range(5, 5) }; - var res = EnumerableEx.Catch(xss); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 10))); - } - - [Fact] - public void Catch9() - { - var xss = new[] { Enumerable.Range(0, 5).Concat(EnumerableEx.Throw(new MyException())), Enumerable.Range(5, 5) }; - var res = xss.Catch(); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 10))); - } - - [Fact] - public void Catch10() - { - var xss = new[] { Enumerable.Range(0, 5).Concat(EnumerableEx.Throw(new MyException())), Enumerable.Range(5, 5) }; - var res = xss[0].Catch(xss[1]); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 10))); - } - - [Fact] - public void Catch11() - { - var e1 = new MyException(); - var ex1 = EnumerableEx.Throw(e1); - - var e2 = new MyException(); - var ex2 = EnumerableEx.Throw(e2); - - var e3 = new MyException(); - var ex3 = EnumerableEx.Throw(e3); - - var xss = new[] { Enumerable.Range(0, 2).Concat(ex1), Enumerable.Range(2, 2).Concat(ex2), ex3 }; - var res = xss.Catch(); - - var e = res.GetEnumerator(); - HasNext(e, 0); - HasNext(e, 1); - HasNext(e, 2); - HasNext(e, 3); - AssertThrows(() => e.MoveNext(), ex => ex == e3); - } - - [Fact] - public void Catch4_Array() - { - var xs = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - var res = xs.Catch(e => { Assert.False(true); return new[] { 42 }; }); - Assert.True(xs.SequenceEqual(res)); - } - - [Fact] - public void Catch5_Array() - { - var xss = new[] { new[] { 0, 1, 2, 3, 4 }, new[] { 5, 6, 7, 8, 9 } }; - var res = EnumerableEx.Catch(xss); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 5))); - } - - [Fact] - public void Catch6_Array() - { - var xss = new[] { new[] { 0, 1, 2, 3, 4 }, new[] { 5, 6, 7, 8, 9 } }; - var res = xss.Catch(); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 5))); - } - - [Fact] - public void Catch7_Array() - { - var xss = new[] { new[] { 0, 1, 2, 3, 4 }, new[] { 5, 6, 7, 8, 9 } }; - var res = xss[0].Catch(xss[1]); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 5))); - } - - [Fact] - public void Catch8_Array() - { - var xss = new[] { new[] { 0, 1, 2, 3, 4 }.Concat(EnumerableEx.Throw(new MyException())), new[] { 5, 6, 7, 8, 9 } }; - var res = EnumerableEx.Catch(xss); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 10))); - } - - [Fact] - public void Catch9_Array() - { - var xss = new[] { new[] { 0, 1, 2, 3, 4 }.Concat(EnumerableEx.Throw(new MyException())), new[] { 5, 6, 7, 8, 9 } }; - var res = xss.Catch(); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 10))); - } - - [Fact] - public void Catch10_Array() - { - var xss = new[] { new[] { 0, 1, 2, 3, 4 }.Concat(EnumerableEx.Throw(new MyException())), new[] { 5, 6, 7, 8, 9 } }; - var res = xss[0].Catch(xss[1]); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 10))); - } - - [Fact] - public void Catch11_Array() - { - var e1 = new MyException(); - var ex1 = EnumerableEx.Throw(e1); - - var e2 = new MyException(); - var ex2 = EnumerableEx.Throw(e2); - - var e3 = new MyException(); - var ex3 = EnumerableEx.Throw(e3); - - var xss = new[] { new[] { 0, 1 }.Concat(ex1), new[] { 2, 3 }.Concat(ex2), ex3 }; - var res = xss.Catch(); - - var e = res.GetEnumerator(); - HasNext(e, 0); - HasNext(e, 1); - HasNext(e, 2); - HasNext(e, 3); - AssertThrows(() => e.MoveNext(), ex => ex == e3); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/ConcatTest.cs b/Ix.NET/Source/System.Interactive.Tests/ConcatTest.cs deleted file mode 100644 index f129b88ded..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/ConcatTest.cs +++ /dev/null @@ -1,63 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class ConcatTest : Tests - { - [Fact] - public void Concat_Arguments() - { - AssertThrows(() => EnumerableEx.Concat(default(IEnumerable[]))); - AssertThrows(() => EnumerableEx.Concat(default(IEnumerable>))); - } - - [Fact] - public void Concat1() - { - var res = new[] - { - new[] { 1, 2, 3 }, - new[] { 4, 5 } - }.Concat(); - - Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4, 5 })); - } - - [Fact] - public void Concat2() - { - var i = 0; - var xss = Enumerable.Range(0, 3).Select(x => Enumerable.Range(0, x + 1)).Do(_ => ++i); - - var res = xss.Concat().Select(x => i + " - " + x).ToList(); - - Assert.True(Enumerable.SequenceEqual(res, new[] { - "1 - 0", - "2 - 0", - "2 - 1", - "3 - 0", - "3 - 1", - "3 - 2", - })); - } - - [Fact] - public void Concat3() - { - var res = EnumerableEx.Concat( - new[] { 1, 2, 3 }, - new[] { 4, 5 } - ); - - Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4, 5 })); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/CreateTest.cs b/Ix.NET/Source/System.Interactive.Tests/CreateTest.cs deleted file mode 100644 index 0fa7ff3fa4..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/CreateTest.cs +++ /dev/null @@ -1,119 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; -using System.Collections; -using System.Threading; - -namespace Tests -{ - public class CreateTest : Tests - { - [Fact] - public void Create_Arguments() - { - AssertThrows(() => EnumerableEx.Create(default)); - } - - [Fact] - public void Create1() - { - var hot = false; - var res = EnumerableEx.Create(() => - { - hot = true; - return MyEnumerator(); - }); - - Assert.False(hot); - - var e = res.GetEnumerator(); - Assert.True(hot); - - HasNext(e, 1); - HasNext(e, 2); - NoNext(e); - - hot = false; - var f = ((IEnumerable)res).GetEnumerator(); - Assert.True(hot); - } - - [Fact] - public void CreateYield() - { - SynchronizationContext.SetSynchronizationContext(null); - - var xs = EnumerableEx.Create(async yield => - { - var i = 0; - while (i < 10) - { - await yield.Return(i++); - } - }); - - var j = 0; - foreach (var elem in xs) - { - Assert.Equal(j, elem); - j++; - } - - Assert.Equal(10, j); - } - - [Fact] - public void CreateYieldBreak() - { - SynchronizationContext.SetSynchronizationContext(null); - - var xs = EnumerableEx.Create(async yield => - { - var i = 0; - while (true) - { - if (i == 10) - { - await yield.Break(); - return; - } - - await yield.Return(i++); - } - }); - - var j = 0; - foreach (var elem in xs) - { - Assert.Equal(elem, j); - j++; - } - - Assert.Equal(10, j); - } - - [Fact] - public void YielderNoReset() - { - var xs = EnumerableEx.Create(async yield => - { - await yield.Break(); - }); - - AssertThrows(() => xs.GetEnumerator().Reset()); - } - - - private static IEnumerator MyEnumerator() - { - yield return 1; - yield return 2; - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/DeferTest.cs b/Ix.NET/Source/System.Interactive.Tests/DeferTest.cs deleted file mode 100644 index d06acacd74..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/DeferTest.cs +++ /dev/null @@ -1,53 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class DeferTest : Tests - { - [Fact] - public void Defer_Arguments() - { - AssertThrows(() => EnumerableEx.Defer(null)); - } - - [Fact] - public void Defer1() - { - var i = 0; - var n = 5; - var xs = EnumerableEx.Defer(() => - { - i++; - return Enumerable.Range(0, n); - }); - - Assert.Equal(0, i); - - Assert.True(Enumerable.SequenceEqual(xs, Enumerable.Range(0, n))); - Assert.Equal(1, i); - - n = 3; - Assert.True(Enumerable.SequenceEqual(xs, Enumerable.Range(0, n))); - Assert.Equal(2, i); - } - - [Fact] - public void Defer2() - { - var xs = EnumerableEx.Defer(() => - { - throw new MyException(); - }); - - AssertThrows(() => xs.GetEnumerator().MoveNext()); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/DistinctTest.cs b/Ix.NET/Source/System.Interactive.Tests/DistinctTest.cs deleted file mode 100644 index 3c20ad97ce..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/DistinctTest.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class DistinctTest : Tests - { - [Fact] - public void Distinct_Arguments() - { - AssertThrows(() => EnumerableEx.Distinct(null, _ => _)); - AssertThrows(() => EnumerableEx.Distinct(new[] { 1 }, null)); - AssertThrows(() => EnumerableEx.Distinct(null, _ => _, EqualityComparer.Default)); - AssertThrows(() => EnumerableEx.Distinct(new[] { 1 }, null, EqualityComparer.Default)); - AssertThrows(() => EnumerableEx.Distinct(new[] { 1 }, _ => _, null)); - } - - [Fact] - public void Distinct1() - { - var res = Enumerable.Range(0, 10).Distinct(x => x % 5).ToList(); - Assert.True(Enumerable.SequenceEqual(res, Enumerable.Range(0, 5))); - } - - [Fact] - public void Distinct2() - { - var res = Enumerable.Range(0, 10).Distinct(x => x % 5, new MyEqualityComparer()).ToList(); - Assert.True(Enumerable.SequenceEqual(res, new[] { 0, 1 })); - } - - private class MyEqualityComparer : IEqualityComparer - { - public bool Equals(int x, int y) - { - return x % 2 == y % 2; - } - - public int GetHashCode(int obj) - { - return EqualityComparer.Default.GetHashCode(obj % 2); - } - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/DistinctUntilChangedTest.cs b/Ix.NET/Source/System.Interactive.Tests/DistinctUntilChangedTest.cs deleted file mode 100644 index 388a498d9c..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/DistinctUntilChangedTest.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class DistinctUntilChangedTest : Tests - { - [Fact] - public void DistinctUntilChanged_Arguments() - { - AssertThrows(() => EnumerableEx.DistinctUntilChanged(null)); - AssertThrows(() => EnumerableEx.DistinctUntilChanged(null, EqualityComparer.Default)); - AssertThrows(() => EnumerableEx.DistinctUntilChanged(new[] { 1 }, null)); - AssertThrows(() => EnumerableEx.DistinctUntilChanged(null, _ => _)); - AssertThrows(() => EnumerableEx.DistinctUntilChanged(new[] { 1 }, null)); - AssertThrows(() => EnumerableEx.DistinctUntilChanged(null, _ => _, EqualityComparer.Default)); - AssertThrows(() => EnumerableEx.DistinctUntilChanged(new[] { 1 }, null, EqualityComparer.Default)); - AssertThrows(() => EnumerableEx.DistinctUntilChanged(new[] { 1 }, _ => _, null)); - } - - [Fact] - public void DistinctUntilChanged1() - { - var res = new[] { 1, 2, 2, 3, 3, 3, 2, 2, 1 }.DistinctUntilChanged().ToList(); - Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 2, 1 })); - } - - [Fact] - public void DistinctUntilChanged2() - { - var res = new[] { 1, 1, 2, 3, 4, 5, 5, 6, 7 }.DistinctUntilChanged(x => x / 2).ToList(); - Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 4, 6 })); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/DoTest.cs b/Ix.NET/Source/System.Interactive.Tests/DoTest.cs deleted file mode 100644 index e89622eb44..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/DoTest.cs +++ /dev/null @@ -1,103 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class DoTest : Tests - { - [Fact] - public void Do_Arguments() - { - AssertThrows(() => EnumerableEx.Do(null, _ => { })); - AssertThrows(() => EnumerableEx.Do(null, _ => { }, () => { })); - AssertThrows(() => EnumerableEx.Do(null, _ => { }, _ => { })); - AssertThrows(() => EnumerableEx.Do(null, _ => { }, _ => { }, () => { })); - AssertThrows(() => EnumerableEx.Do(new[] { 1 }, default(Action))); - AssertThrows(() => EnumerableEx.Do(new[] { 1 }, default, () => { })); - AssertThrows(() => EnumerableEx.Do(new[] { 1 }, _ => { }, default(Action))); - AssertThrows(() => EnumerableEx.Do(new[] { 1 }, default, _ => { }, () => { })); - AssertThrows(() => EnumerableEx.Do(new[] { 1 }, _ => { }, default, () => { })); - AssertThrows(() => EnumerableEx.Do(new[] { 1 }, _ => { }, _ => { }, default)); - AssertThrows(() => EnumerableEx.Do(new[] { 1 }, default, _ => { })); - AssertThrows(() => EnumerableEx.Do(new[] { 1 }, _ => { }, default(Action))); - AssertThrows(() => EnumerableEx.Do(null, new MyObserver())); - AssertThrows(() => EnumerableEx.Do(new[] { 1 }, default(IObserver))); - } - - [Fact] - public void Do1() - { - var n = 0; - Enumerable.Range(0, 10).Do(x => n += x).ForEach(_ => { }); - Assert.Equal(45, n); - } - - [Fact] - public void Do2() - { - var n = 0; - Enumerable.Range(0, 10).Do(x => n += x, () => n *= 2).ForEach(_ => { }); - Assert.Equal(90, n); - } - - [Fact] - public void Do3() - { - var ex = new MyException(); - var ok = false; - AssertThrows(() => - EnumerableEx.Throw(ex).Do(x => { Assert.True(false); }, e => { Assert.Equal(ex, e); ok = true; }).ForEach(_ => { }) - ); - Assert.True(ok); - } - - [Fact] - public void Do4() - { - var obs = new MyObserver(); - Enumerable.Range(0, 10).Do(obs).ForEach(_ => { }); - - Assert.True(obs.Done); - Assert.Equal(45, obs.Sum); - } - - private class MyObserver : IObserver - { - public int Sum; - public bool Done; - - public void OnCompleted() - { - Done = true; - } - - public void OnError(Exception error) - { - throw new NotImplementedException(); - } - - public void OnNext(int value) - { - Sum += value; - } - } - - [Fact] - public void Do5() - { - var sum = 0; - var done = false; - Enumerable.Range(0, 10).Do(x => sum += x, ex => { throw ex; }, () => done = true).ForEach(_ => { }); - - Assert.True(done); - Assert.Equal(45, sum); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/DoWhileTest.cs b/Ix.NET/Source/System.Interactive.Tests/DoWhileTest.cs deleted file mode 100644 index 73d5d04b29..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/DoWhileTest.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class DoWhileTest : Tests - { - [Fact] - public void DoWhile_Arguments() - { - AssertThrows(() => EnumerableEx.DoWhile(new[] { 1 }, null)); - AssertThrows(() => EnumerableEx.DoWhile(null, () => true)); - } - - [Fact] - public void DoWhile1() - { - var x = 5; - var res = EnumerableEx.DoWhile(EnumerableEx.Defer(() => new[] { x }).Do(_ => x--), () => x > 0).ToList(); - Assert.True(Enumerable.SequenceEqual(res, new[] { 5, 4, 3, 2, 1 })); - } - - [Fact] - public void DoWhile2() - { - var x = 0; - var res = EnumerableEx.DoWhile(EnumerableEx.Defer(() => new[] { x }).Do(_ => x--), () => x > 0).ToList(); - Assert.True(Enumerable.SequenceEqual(res, new[] { 0 })); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/ExpandTest.cs b/Ix.NET/Source/System.Interactive.Tests/ExpandTest.cs deleted file mode 100644 index 8504bf151a..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/ExpandTest.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class ExpandTest : Tests - { - [Fact] - public void Expand_Arguments() - { - AssertThrows(() => EnumerableEx.Expand(null, _ => new[] { _ })); - AssertThrows(() => EnumerableEx.Expand(new[] { 1 }, null)); - } - - [Fact] - public void Expand1() - { - var res = new[] { 0 }.Expand(x => new[] { x + 1 }).Take(10).ToList(); - Assert.True(Enumerable.SequenceEqual(res, Enumerable.Range(0, 10))); - } - - [Fact] - public void Expand2() - { - var res = new[] { 3 }.Expand(x => Enumerable.Range(0, x)).ToList(); - var exp = new[] { - 3, - 0, 1, 2, - 0, - 0, 1, - 0 - }; - Assert.True(Enumerable.SequenceEqual(res, exp)); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/FinallyTest.cs b/Ix.NET/Source/System.Interactive.Tests/FinallyTest.cs deleted file mode 100644 index 52d44c58bb..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/FinallyTest.cs +++ /dev/null @@ -1,86 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class FinallyTest : Tests - { - [Fact] - public void Finally_Arguments() - { - AssertThrows(() => EnumerableEx.Finally(null, () => { })); - AssertThrows(() => EnumerableEx.Finally(new[] { 1 }, null)); - } - - [Fact] - public void Finally1() - { - var done = false; - - var xs = Enumerable.Range(0, 2).Finally(() => done = true); - Assert.False(done); - - var e = xs.GetEnumerator(); - Assert.False(done); - - HasNext(e, 0); - Assert.False(done); - - HasNext(e, 1); - Assert.False(done); - - NoNext(e); - Assert.True(done); - } - - [Fact] - public void Finally2() - { - var done = false; - - var xs = Enumerable.Range(0, 2).Finally(() => done = true); - Assert.False(done); - - var e = xs.GetEnumerator(); - Assert.False(done); - - HasNext(e, 0); - Assert.False(done); - - e.Dispose(); - Assert.True(done); - } - - [Fact] - public void Finally3() - { - var done = false; - - var ex = new MyException(); - var xs = EnumerableEx.Throw(ex).Finally(() => done = true); - Assert.False(done); - - var e = xs.GetEnumerator(); - Assert.False(done); - - try - { - HasNext(e, 0); - Assert.True(false); - } - catch (MyException ex_) - { - Assert.Same(ex, ex_); - } - - Assert.True(done); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/ForEachTest.cs b/Ix.NET/Source/System.Interactive.Tests/ForEachTest.cs deleted file mode 100644 index 0bcc9bf467..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/ForEachTest.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class ForEachTest : Tests - { - [Fact] - public void ForEach_Arguments() - { - AssertThrows(() => EnumerableEx.ForEach(null, x => { })); - AssertThrows(() => EnumerableEx.ForEach(new[] { 1 }, default(Action))); - AssertThrows(() => EnumerableEx.ForEach(null, (x, i) => { })); - AssertThrows(() => EnumerableEx.ForEach(new[] { 1 }, default(Action))); - } - - [Fact] - public void ForEach1() - { - var n = 0; - Enumerable.Range(5, 3).ForEach(x => n += x); - Assert.Equal(5 + 6 + 7, n); - } - - [Fact] - public void ForEach2() - { - var n = 0; - Enumerable.Range(5, 3).ForEach((x, i) => n += x * i); - Assert.Equal(5 * 0 + 6 * 1 + 7 * 2, n); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/ForTest.cs b/Ix.NET/Source/System.Interactive.Tests/ForTest.cs deleted file mode 100644 index 3a017504c6..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/ForTest.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. -using System; -using System.Collections.Generic; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class ForTest : Tests - { - [Fact] - public void For_Arguments() - { - AssertThrows(() => EnumerableEx.For(null, x => new[] { 1 })); - AssertThrows(() => EnumerableEx.For(new[] { 1 }, null)); - } - - [Fact] - public void For() - { - var res = EnumerableEx.For(new[] { 1, 2, 3 }, x => Enumerable.Range(0, x)).ToList(); - Assert.True(res.SequenceEqual(new[] { 0, 0, 1, 0, 1, 2 })); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/GenerateTest.cs b/Ix.NET/Source/System.Interactive.Tests/GenerateTest.cs deleted file mode 100644 index 90c342dbfb..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/GenerateTest.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class GenerateTest : Tests - { - [Fact] - public void Generate_Arguments() - { - AssertThrows(() => EnumerableEx.Generate(0, null, _ => _, _ => _)); - AssertThrows(() => EnumerableEx.Generate(0, _ => true, null, _ => _)); - AssertThrows(() => EnumerableEx.Generate(0, _ => true, _ => _, null)); - } - - [Fact] - public void Generate() - { - var res = EnumerableEx.Generate(0, x => x < 5, x => x + 1, x => x * x).ToList(); - Assert.True(Enumerable.SequenceEqual(res, new[] { 0, 1, 4, 9, 16 })); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/HideTest.cs b/Ix.NET/Source/System.Interactive.Tests/HideTest.cs deleted file mode 100644 index 37a99c7092..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/HideTest.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class HideTest : Tests - { - [Fact] - public void Hide_Arguments() - { - AssertThrows(() => EnumerableEx.Hide(null)); - } - - [Fact] - public void Hide() - { - var xs = new List { 1, 2, 3 }; - var ys = xs.Hide(); - Assert.False(ys is List); - Assert.True(xs.SequenceEqual(ys)); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/IfTest.cs b/Ix.NET/Source/System.Interactive.Tests/IfTest.cs deleted file mode 100644 index 14d2dd5347..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/IfTest.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class IfTest : Tests - { - [Fact] - public void If_Arguments() - { - AssertThrows(() => EnumerableEx.If(null, new[] { 1 })); - AssertThrows(() => EnumerableEx.If(() => true, null)); - AssertThrows(() => EnumerableEx.If(null, new[] { 1 }, new[] { 1 })); - AssertThrows(() => EnumerableEx.If(() => true, null, new[] { 1 })); - AssertThrows(() => EnumerableEx.If(() => true, new[] { 1 }, null)); - } - - [Fact] - public void If1() - { - var x = 5; - var res = EnumerableEx.If(() => x > 0, new[] { +1 }, new[] { -1 }); - - Assert.Equal(+1, res.Single()); - - x = -x; - Assert.Equal(-1, res.Single()); - } - - [Fact] - public void If2() - { - var x = 5; - var res = EnumerableEx.If(() => x > 0, new[] { +1 }); - - Assert.Equal(+1, res.Single()); - - x = -x; - Assert.True(res.IsEmpty()); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/IgnoreElementsTest.cs b/Ix.NET/Source/System.Interactive.Tests/IgnoreElementsTest.cs deleted file mode 100644 index 1039eb5bff..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/IgnoreElementsTest.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class IgnoreElementsTest : Tests - { - [Fact] - public void IgnoreElements_Arguments() - { - AssertThrows(() => EnumerableEx.IgnoreElements(null)); - } - - [Fact] - public void IgnoreElements() - { - var n = 0; - Enumerable.Range(0, 10).Do(_ => n++).IgnoreElements().Take(5).ForEach(_ => { }); - Assert.Equal(10, n); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/IsEmptyTest.cs b/Ix.NET/Source/System.Interactive.Tests/IsEmptyTest.cs deleted file mode 100644 index 6b6af020e5..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/IsEmptyTest.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class IsEmptyTest : Tests - { - [Fact] - public void IsEmtpy_Arguments() - { - AssertThrows(() => EnumerableEx.IsEmpty(null)); - } - - [Fact] - public void IsEmpty_Empty() - { - Assert.True(Enumerable.Empty().IsEmpty()); - } - - [Fact] - public void IsEmpty_NonEmpty() - { - Assert.False(new[] { 1 }.IsEmpty()); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/MaxByTest.cs b/Ix.NET/Source/System.Interactive.Tests/MaxByTest.cs deleted file mode 100644 index 1d7dd40069..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/MaxByTest.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. -using System; -using System.Collections.Generic; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class MaxByTest : Tests - { - [Fact] - public void MaxBy_Arguments() - { - AssertThrows(() => EnumerableEx.MaxBy(null, (int x) => x)); - AssertThrows(() => EnumerableEx.MaxBy(new[] { 1 }, default(Func))); - AssertThrows(() => EnumerableEx.MaxBy(null, (int x) => x, Comparer.Default)); - AssertThrows(() => EnumerableEx.MaxBy(new[] { 1 }, default, Comparer.Default)); - AssertThrows(() => EnumerableEx.MaxBy(new[] { 1 }, (int x) => x, null)); - } - - [Fact] - public void MaxBy() - { - var res = new[] { 2, 5, 0, 7, 4, 3, 6, 2, 1 }.MaxBy(x => x % 3); - Assert.True(res.SequenceEqual(new[] { 2, 5, 2 })); - } - - [Fact] - public void MaxBy_Empty() - { - AssertThrows(() => Enumerable.Empty().MaxBy(x => x)); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/MaxTest.cs b/Ix.NET/Source/System.Interactive.Tests/MaxTest.cs deleted file mode 100644 index d046a2d968..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/MaxTest.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class MaxTest : Tests - { - [Fact] - public void Max_Arguments() - { - AssertThrows(() => EnumerableEx.Max(null, Comparer.Default)); - AssertThrows(() => EnumerableEx.Max(new[] { 1 }, null)); - } - - [Fact] - public void Max() - { - Assert.Equal(5, new[] { 2, 5, 3, 7 }.Max(new Mod7Comparer())); - } - - private class Mod7Comparer : IComparer - { - public int Compare(int x, int y) - { - return Comparer.Default.Compare(x % 7, y % 7); - } - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/MemoizeTest.cs b/Ix.NET/Source/System.Interactive.Tests/MemoizeTest.cs deleted file mode 100644 index 2f5016462c..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/MemoizeTest.cs +++ /dev/null @@ -1,273 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; -using System.Collections; - -namespace Tests -{ - public class MemoizeTest : Tests - { - [Fact] - public void Memoize_Arguments() - { - AssertThrows(() => EnumerableEx.Memoize(null)); - } - - [Fact] - public void MemoizeLimited_Arguments() - { - AssertThrows(() => EnumerableEx.Memoize(null, 2)); - AssertThrows(() => EnumerableEx.Memoize(new[] { 1 }, 0)); - AssertThrows(() => EnumerableEx.Memoize(new[] { 1 }, -1)); - } - - [Fact] - public void Memoize0() - { - var n = 0; - var rng = Tick(i => n += i).Memoize(); - - var e1 = rng.GetEnumerator(); - var e2 = rng.GetEnumerator(); - - HasNext(e1, 0); - Assert.Equal(0, n); - - HasNext(e1, 1); - Assert.Equal(1, n); - - HasNext(e1, 2); - Assert.Equal(3, n); - HasNext(e2, 0); - Assert.Equal(3, n); - - HasNext(e1, 3); - Assert.Equal(6, n); - HasNext(e2, 1); - Assert.Equal(6, n); - - HasNext(e2, 2); - Assert.Equal(6, n); - HasNext(e2, 3); - Assert.Equal(6, n); - - HasNext(e2, 4); - Assert.Equal(10, n); - HasNext(e1, 4); - Assert.Equal(10, n); - } - - [Fact] - public void Memoize1() - { - var rng = Enumerable.Range(0, 5).Memoize(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - HasNext(e1, 3); - HasNext(e1, 4); - NoNext(e1); - } - - [Fact] - public void Memoize2() - { - var rng = Enumerable.Range(0, 5).Memoize(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - HasNext(e1, 3); - HasNext(e1, 4); - NoNext(e1); - - var e2 = rng.GetEnumerator(); - HasNext(e2, 0); - HasNext(e2, 1); - HasNext(e2, 2); - HasNext(e2, 3); - HasNext(e2, 4); - NoNext(e2); - } - - [Fact] - public void Memoize3() - { - var rng = Enumerable.Range(0, 5).Memoize(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - - var e2 = rng.GetEnumerator(); - HasNext(e1, 3); - HasNext(e2, 0); - HasNext(e2, 1); - HasNext(e1, 4); - HasNext(e2, 2); - NoNext(e1); - - HasNext(e2, 3); - HasNext(e2, 4); - NoNext(e2); - } - - [Fact] - public void Memoize4() - { - var rng = Enumerable.Range(0, 5).Memoize(2); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - - var e2 = rng.GetEnumerator(); - HasNext(e2, 0); - HasNext(e2, 1); - HasNext(e2, 2); - - var e3 = rng.GetEnumerator(); - AssertThrows(() => e3.MoveNext()); - } - - [Fact] - public void Memoize6() - { - var ex = new MyException(); - var rng = Enumerable.Range(0, 2).Concat(EnumerableEx.Throw(ex)).Memoize(); - - var e1 = rng.GetEnumerator(); - var e2 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - AssertThrows(() => e1.MoveNext()); - - HasNext(e2, 0); - HasNext(e2, 1); - AssertThrows(() => e2.MoveNext()); - } - - [Fact] - public void Memoize7() - { - var rng = Enumerable.Range(0, 5).Memoize(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - e1.Dispose(); - - var e2 = rng.GetEnumerator(); - HasNext(e2, 0); - HasNext(e2, 1); - e2.Dispose(); - - var e3 = rng.GetEnumerator(); - HasNext(e3, 0); - HasNext(e3, 1); - HasNext(e3, 2); - HasNext(e3, 3); - HasNext(e3, 4); - NoNext(e3); - } - - [Fact] - public void Memoize8() - { - var rng = Enumerable.Range(0, 5).Memoize(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - - rng.Dispose(); - AssertThrows(() => e1.MoveNext()); - AssertThrows(() => rng.GetEnumerator()); - AssertThrows(() => ((IEnumerable)rng).GetEnumerator()); - } - - [Fact] - public void Memoize9() - { - var rng = Enumerable.Range(0, 5).Memoize(); - - var e1 = ((IEnumerable)rng).GetEnumerator(); - Assert.True(e1.MoveNext()); - Assert.Equal(0, (int)e1.Current); - } - - [Fact] - public void Memoize10() - { - var rnd = Rand().Take(1000).Memoize(); - Assert.True(rnd.Zip(rnd, (l, r) => l == r).All(x => x)); - } - - [Fact] - public void MemoizeLambda_Arguments() - { - AssertThrows(() => EnumerableEx.Memoize(null, xs => xs)); - AssertThrows(() => EnumerableEx.Memoize(new[] { 1 }, null)); - } - - [Fact] - public void MemoizeLambda() - { - var n = 0; - var res = Enumerable.Range(0, 10).Do(_ => n++).Memoize(xs => xs.Zip(xs, (l, r) => l + r).Take(4)).ToList(); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 4).Select(x => x * 2))); - Assert.Equal(4, n); - } - - [Fact] - public void MemoizeLimitedLambda_Arguments() - { - AssertThrows(() => EnumerableEx.Memoize(null, 2, xs => xs)); - AssertThrows(() => EnumerableEx.Memoize(new[] { 1 }, 2, null)); - AssertThrows(() => EnumerableEx.Memoize(new[] { 1 }, 0, xs => xs)); - AssertThrows(() => EnumerableEx.Memoize(new[] { 1 }, -1, xs => xs)); - } - - [Fact] - public void MemoizeLimitedLambda() - { - var n = 0; - var res = Enumerable.Range(0, 10).Do(_ => n++).Memoize(2, xs => xs.Zip(xs, (l, r) => l + r).Take(4)).ToList(); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 4).Select(x => x * 2))); - Assert.Equal(4, n); - } - - private static readonly Random Random = new Random(); - - private static IEnumerable Rand() - { - while (true) - { - yield return Random.Next(); - } - } - - private static IEnumerable Tick(Action t) - { - var i = 0; - while (true) - { - t(i); - yield return i++; - } - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/MinByTest.cs b/Ix.NET/Source/System.Interactive.Tests/MinByTest.cs deleted file mode 100644 index 13bb7b01ee..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/MinByTest.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class MinByTest : Tests - { - [Fact] - public void MinBy_Arguments() - { - AssertThrows(() => EnumerableEx.MinBy(null, (int x) => x)); - AssertThrows(() => EnumerableEx.MinBy(new[] { 1 }, default(Func))); - AssertThrows(() => EnumerableEx.MinBy(null, (int x) => x, Comparer.Default)); - AssertThrows(() => EnumerableEx.MinBy(new[] { 1 }, default, Comparer.Default)); - AssertThrows(() => EnumerableEx.MinBy(new[] { 1 }, (int x) => x, null)); - } - - [Fact] - public void MinBy() - { - var res = new[] { 2, 5, 0, 7, 4, 3, 6, 2, 1 }.MinBy(x => x % 3); - Assert.True(res.SequenceEqual(new[] { 0, 3, 6 })); - } - - [Fact] - public void MinBy_Empty() - { - AssertThrows(() => Enumerable.Empty().MinBy(x => x)); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/MinTest.cs b/Ix.NET/Source/System.Interactive.Tests/MinTest.cs deleted file mode 100644 index 67a20da154..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/MinTest.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class MinTest : Tests - { - [Fact] - public void Min_Arguments() - { - AssertThrows(() => EnumerableEx.Min(null, Comparer.Default)); - AssertThrows(() => EnumerableEx.Min(new[] { 1 }, null)); - } - - [Fact] - public void Min() - { - Assert.Equal(3, new[] { 5, 3, 7 }.Min(new Mod3Comparer())); - } - - private class Mod3Comparer : IComparer - { - public int Compare(int x, int y) - { - return Comparer.Default.Compare(x % 3, y % 3); - } - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/NopObserver.cs b/Ix.NET/Source/System.Interactive.Tests/NopObserver.cs deleted file mode 100644 index 314a84f1c0..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/NopObserver.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; - -namespace Tests -{ - public class NopObserver : IObserver - { - public void OnCompleted() - { - } - - public void OnError(Exception error) - { - } - - public void OnNext(T value) - { - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/OnErrorResumeNextTest.cs b/Ix.NET/Source/System.Interactive.Tests/OnErrorResumeNextTest.cs deleted file mode 100644 index f6f3695a23..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/OnErrorResumeNextTest.cs +++ /dev/null @@ -1,86 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class OnErrorResumeNextTest : Tests - { - [Fact] - public void OnErrorResumeNext_Arguments() - { - AssertThrows(() => EnumerableEx.OnErrorResumeNext(null, new[] { 1 })); - AssertThrows(() => EnumerableEx.OnErrorResumeNext(new[] { 1 }, null)); - AssertThrows(() => EnumerableEx.OnErrorResumeNext(default)); - AssertThrows(() => EnumerableEx.OnErrorResumeNext(default(IEnumerable>))); - } - - [Fact] - public void OnErrorResumeNext1() - { - var xs = new[] { 1, 2 }; - var ys = new[] { 3, 4 }; - - var res = xs.OnErrorResumeNext(ys); - Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4 })); - } - - [Fact] - public void OnErrorResumeNext2() - { - var xs = new[] { 1, 2 }.Concat(EnumerableEx.Throw(new MyException())); - var ys = new[] { 3, 4 }; - - var res = xs.OnErrorResumeNext(ys); - Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4 })); - } - - [Fact] - public void OnErrorResumeNext3() - { - var xs = new[] { 1, 2 }; - var ys = new[] { 3, 4 }; - var zs = new[] { 5, 6 }; - - var res = EnumerableEx.OnErrorResumeNext(xs, ys, zs); - Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4, 5, 6 })); - } - - [Fact] - public void OnErrorResumeNext4() - { - var xs = new[] { 1, 2 }.Concat(EnumerableEx.Throw(new MyException())); - var ys = new[] { 3, 4 }; - var zs = new[] { 5, 6 }; - - var res = EnumerableEx.OnErrorResumeNext(xs, ys, zs); - Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4, 5, 6 })); - } - - [Fact] - public void OnErrorResumeNext5() - { - var xs = new[] { 1, 2 }; - var ys = new[] { 3, 4 }; - - var res = new[] { xs, ys }.OnErrorResumeNext(); - Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4 })); - } - - [Fact] - public void OnErrorResumeNext6() - { - var xs = new[] { 1, 2 }.Concat(EnumerableEx.Throw(new MyException())); - var ys = new[] { 3, 4 }; - - var res = new[] { xs, ys }.OnErrorResumeNext(); - Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4 })); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/PublishTest.cs b/Ix.NET/Source/System.Interactive.Tests/PublishTest.cs deleted file mode 100644 index ed8c8f1517..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/PublishTest.cs +++ /dev/null @@ -1,284 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; -using System.Collections; - -namespace Tests -{ - public class PublishTest : Tests - { - [Fact] - public void Publish_Arguments() - { - AssertThrows(() => EnumerableEx.Publish(null)); - } - - [Fact] - public void Publish0() - { - var n = 0; - var rng = Tick(i => n += i).Publish(); - - var e1 = rng.GetEnumerator(); - var e2 = rng.GetEnumerator(); - - HasNext(e1, 0); - Assert.Equal(0, n); - - HasNext(e1, 1); - Assert.Equal(1, n); - - HasNext(e1, 2); - Assert.Equal(3, n); - HasNext(e2, 0); - Assert.Equal(3, n); - - HasNext(e1, 3); - Assert.Equal(6, n); - HasNext(e2, 1); - Assert.Equal(6, n); - - HasNext(e2, 2); - Assert.Equal(6, n); - HasNext(e2, 3); - Assert.Equal(6, n); - - HasNext(e2, 4); - Assert.Equal(10, n); - HasNext(e1, 4); - Assert.Equal(10, n); - } - - [Fact] - public void Publish1() - { - var rng = Enumerable.Range(0, 5).Publish(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - HasNext(e1, 3); - HasNext(e1, 4); - NoNext(e1); - } - - [Fact] - public void Publish2() - { - var rng = Enumerable.Range(0, 5).Publish(); - - var e1 = rng.GetEnumerator(); - var e2 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e2, 0); - HasNext(e1, 1); - HasNext(e2, 1); - HasNext(e1, 2); - HasNext(e2, 2); - HasNext(e1, 3); - HasNext(e2, 3); - HasNext(e1, 4); - HasNext(e2, 4); - NoNext(e1); - NoNext(e2); - } - - [Fact] - public void Publish3() - { - var rng = Enumerable.Range(0, 5).Publish(); - - var e1 = rng.GetEnumerator(); - var e2 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - HasNext(e1, 3); - HasNext(e1, 4); - HasNext(e2, 0); - HasNext(e2, 1); - HasNext(e2, 2); - HasNext(e2, 3); - HasNext(e2, 4); - NoNext(e1); - NoNext(e2); - } - - [Fact] - public void Publish4() - { - var rng = Enumerable.Range(0, 5).Publish(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - var e2 = rng.GetEnumerator(); - HasNext(e1, 3); - HasNext(e1, 4); - HasNext(e2, 3); - HasNext(e2, 4); - NoNext(e1); - NoNext(e2); - } - - [Fact] - public void Publish5() - { - var rng = Enumerable.Range(0, 5).Publish(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - e1.Dispose(); - - var e2 = rng.GetEnumerator(); - HasNext(e2, 3); - HasNext(e2, 4); - NoNext(e2); - } - - [Fact] - public void Publish6() - { - var ex = new MyException(); - var rng = Enumerable.Range(0, 2).Concat(EnumerableEx.Throw(ex)).Publish(); - - var e1 = rng.GetEnumerator(); - var e2 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - AssertThrows(() => e1.MoveNext()); - - HasNext(e2, 0); - HasNext(e2, 1); - AssertThrows(() => e2.MoveNext()); - } - - [Fact] - public void Publish7() - { - var rng = Enumerable.Range(0, 5).Publish(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - - var e2 = rng.GetEnumerator(); - HasNext(e2, 3); - HasNext(e2, 4); - NoNext(e2); - - HasNext(e1, 3); - HasNext(e1, 4); - NoNext(e2); - - var e3 = rng.GetEnumerator(); - NoNext(e3); - } - - [Fact] - public void Publish8() - { - var rng = Enumerable.Range(0, 5).Publish(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - - rng.Dispose(); - AssertThrows(() => e1.MoveNext()); - AssertThrows(() => rng.GetEnumerator()); - AssertThrows(() => ((IEnumerable)rng).GetEnumerator()); - } - - [Fact] - public void Publish9() - { - var rng = Enumerable.Range(0, 5).Publish(); - - var e1 = ((IEnumerable)rng).GetEnumerator(); - Assert.True(e1.MoveNext()); - Assert.Equal(0, (int)e1.Current); - } - - [Fact] - public void Publish10() - { - var rnd = Rand().Take(1000).Publish(); - Assert.True(rnd.Zip(rnd, (l, r) => l == r).All(x => x)); - } - - [Fact] - public void Publish11() - { - var rng = Enumerable.Range(0, 5).Publish(); - - var e1 = rng.GetEnumerator(); - var e2 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - e1.Dispose(); - - HasNext(e2, 0); - HasNext(e2, 1); - e2.Dispose(); - - var e3 = rng.GetEnumerator(); - HasNext(e3, 3); - HasNext(e3, 4); - NoNext(e3); - } - - [Fact] - public void PublishLambda_Arguments() - { - AssertThrows(() => EnumerableEx.Publish(null, xs => xs)); - AssertThrows(() => EnumerableEx.Publish(new[] { 1 }, null)); - } - - [Fact] - public void PublishLambda() - { - var n = 0; - var res = Enumerable.Range(0, 10).Do(_ => n++).Publish(xs => xs.Zip(xs, (l, r) => l + r).Take(4)).ToList(); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 4).Select(x => x * 2))); - Assert.Equal(4, n); - } - - private static readonly Random Random = new Random(); - - private static IEnumerable Rand() - { - while (true) - { - yield return Random.Next(); - } - } - - private static IEnumerable Tick(Action t) - { - var i = 0; - while (true) - { - t(i); - yield return i++; - } - } - } - - internal class MyException : Exception - { - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/QueryableParityTest.cs b/Ix.NET/Source/System.Interactive.Tests/QueryableParityTest.cs deleted file mode 100644 index 295cd9b0cb..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/QueryableParityTest.cs +++ /dev/null @@ -1,163 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.ComponentModel; -using System.Linq; -using System.Linq.Expressions; -using System.Reflection; -using System.Runtime.CompilerServices; -using Xunit; - -namespace Tests -{ - public class QueryableParity : Tests - { - [Fact] - public void Queryable_Enumerable_Parity() - { - var enu = typeof(EnumerableEx).GetRuntimeMethods().Where(m => m.IsStatic && m.IsPublic).ToList(); - var qry = typeof(QueryableEx).GetRuntimeMethods().Where(m => m.IsStatic && m.IsPublic).ToList(); - - var onlyInObs = enu.Select(m => m.Name).Except(qry.Select(m => m.Name)).Except(new[] { "ForEach", "ToEnumerable", "Multicast", "GetAwaiter", "ToEvent", "ToEventPattern", "ForEachAsync" }).ToList(); - var onlyInQbs = qry.Select(m => m.Name).Except(enu.Select(m => m.Name)).Except(new[] { "ToQueryable", "get_Provider", "Empty", "Range" }).ToList(); - - Assert.True(onlyInObs.Count == 0, "Missing Queryable operator: " + string.Join(", ", onlyInObs.ToArray())); - Assert.True(onlyInQbs.Count == 0, "Missing Enumerable operator: " + string.Join(", ", onlyInQbs.ToArray())); - - var enus = enu.GroupBy(m => m.Name); - var qrys = qry.GroupBy(m => m.Name); - var mtch = (from o in enus - join q in qrys on o.Key equals q.Key - select new { Name = o.Key, Enumerable = o.ToList(), Queryable = q.ToList() }) - .ToList(); - - bool filterReturn(Type t) - { - if (t.GetTypeInfo().IsGenericType) - { - var gd = t.GetGenericTypeDefinition(); - if (gd == typeof(IBuffer<>)) - { - return false; - } - } - return true; - } - - bool filterHelper(MethodInfo m) - { - return !m.IsDefined(typeof(EditorBrowsableAttribute), false); - } - - foreach (var group in mtch) - { - var oss = group.Enumerable - .Where(m => filterReturn(m.ReturnType)) - .Select(m => GetSignature(m, false)) - .OrderBy(x => x).ToList(); - - var qss = group.Queryable - .Where(m => filterHelper(m)) - .Select(m => GetSignature(m, true)) - .OrderBy(x => x).ToList(); - - if (!group.Name.Equals("Create")) - { - Assert.True(oss.SequenceEqual(qss), "Mismatch between QueryableEx and EnumerableEx for " + group.Name); - } - } - } - - public static string GetSignature(MethodInfo m, bool correct) - { - var ps = m.GetParameters(); - var pss = ps.AsEnumerable(); - if (correct && ps.Length > 0 && ps[0].ParameterType == typeof(IQueryProvider)) - { - pss = pss.Skip(1); - } - - var gens = m.IsGenericMethod ? string.Format("<{0}>", string.Join(", ", m.GetGenericArguments().Select(a => GetTypeName(a, correct)).ToArray())) : ""; - - var pars = string.Join(", ", pss.Select(p => (p.IsDefined(typeof(ParamArrayAttribute)) ? "params " : "") + GetTypeName(p.ParameterType, correct) + " " + p.Name).ToArray()); - if (m.IsDefined(typeof(ExtensionAttribute))) - { - if (pars.StartsWith("IQbservable") || pars.StartsWith("IQueryable")) - { - pars = "this " + pars; - } - } - - return string.Format("{0} {1}{2}({3})", GetTypeName(m.ReturnType, correct), m.Name, gens, pars); - } - - public static string GetTypeName(Type t, bool correct) - { - if (t.GetTypeInfo().IsGenericType) - { - var gtd = t.GetGenericTypeDefinition(); - if (gtd == typeof(Expression<>)) - { - return GetTypeName(t.GenericTypeArguments[0], false); - } - - var args = string.Join(", ", t.GenericTypeArguments.Select(a => GetTypeName(a, false)).ToArray()); - - var len = t.Name.IndexOf('`'); - var name = len >= 0 ? t.Name.Substring(0, len) : t.Name; - if (correct && name == "IQbservable") - { - name = "IObservable"; - } - - if (correct && name == "IQueryable") - { - name = "IEnumerable"; - } - - return string.Format("{0}<{1}>", name, args); - } - - if (t.IsArray) - { - return GetTypeName(t.GetElementType(), correct) + "[]"; - } - - return t.Name; - } - - [Fact] - public void QueryableRetarget1() - { - var res = QueryableEx.Provider.Empty().AsEnumerable().ToList(); - Assert.True(res.SequenceEqual(new int[0])); - } - - [Fact] - public void QueryableRetarget2() - { - var res = QueryableEx.Provider.Return(42).AsEnumerable().ToList(); - Assert.True(res.SequenceEqual(new[] { 42 })); - } - - [Fact] - public void QueryableRetarget3() - { -#if NETCOREAPP2_1 || WINDOWS_UWP - var res = QueryableEx.TakeLast(Enumerable.Range(0, 10).AsQueryable(), 2).AsEnumerable().ToList(); -#else - var res = Enumerable.Range(0, 10).AsQueryable().TakeLast(2).AsEnumerable().ToList(); -#endif - Assert.True(res.SequenceEqual(new[] { 8, 9 })); - } - - [Fact] - public void QueryableRetarget4() - { - var res = QueryableEx.Provider.Range(0, 10).AsEnumerable().ToList(); - Assert.True(res.SequenceEqual(Enumerable.Range(0, 10))); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/RepeatTest.cs b/Ix.NET/Source/System.Interactive.Tests/RepeatTest.cs deleted file mode 100644 index 8e1c561b57..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/RepeatTest.cs +++ /dev/null @@ -1,55 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class RepeatTest : Tests - { - [Fact] - public void RepeatElementInfinite() - { - var xs = EnumerableEx.Repeat(42).Take(1000); - Assert.True(xs.All(x => x == 42)); - Assert.True(xs.Count() == 1000); - } - - [Fact] - public void RepeatSequence_Arguments() - { - AssertThrows(() => EnumerableEx.Repeat(null)); - AssertThrows(() => EnumerableEx.Repeat(null, 5)); - AssertThrows(() => EnumerableEx.Repeat(new[] { 1 }, -1)); - } - - [Fact] - public void RepeatSequence1() - { - var i = 0; - var xs = new[] { 1, 2 }.Do(_ => i++).Repeat(); - - var res = xs.Take(10).ToList(); - Assert.Equal(10, res.Count); - Assert.True(res.Buffer(2).Select(b => b.Sum()).All(x => x == 3)); - Assert.Equal(10, i); - } - - [Fact] - public void RepeatSequence2() - { - var i = 0; - var xs = new[] { 1, 2 }.Do(_ => i++).Repeat(5); - - var res = xs.ToList(); - Assert.Equal(10, res.Count); - Assert.True(res.Buffer(2).Select(b => b.Sum()).All(x => x == 3)); - Assert.Equal(10, i); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/RetryTest.cs b/Ix.NET/Source/System.Interactive.Tests/RetryTest.cs deleted file mode 100644 index f16c6bd35b..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/RetryTest.cs +++ /dev/null @@ -1,55 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. -using System; -using System.Collections.Generic; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class RetryTest : Tests - { - - [Fact] - public void Retry_Arguments() - { - AssertThrows(() => EnumerableEx.Retry(null)); - AssertThrows(() => EnumerableEx.Retry(null, 5)); - AssertThrows(() => EnumerableEx.Retry(new[] { 1 }, -1)); - } - - [Fact] - public void Retry1() - { - var xs = Enumerable.Range(0, 10); - - var res = xs.Retry(); - Assert.True(Enumerable.SequenceEqual(res, xs)); - } - - [Fact] - public void Retry2() - { - var xs = Enumerable.Range(0, 10); - - var res = xs.Retry(2); - Assert.True(Enumerable.SequenceEqual(res, xs)); - } - - [Fact] - public void Retry3() - { - var ex = new MyException(); - var xs = Enumerable.Range(0, 2).Concat(EnumerableEx.Throw(ex)); - - var res = xs.Retry(2); - var e = res.GetEnumerator(); - HasNext(e, 0); - HasNext(e, 1); - HasNext(e, 0); - HasNext(e, 1); - AssertThrows(() => e.MoveNext(), ex_ => ex == ex_); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/ReturnTest.cs b/Ix.NET/Source/System.Interactive.Tests/ReturnTest.cs deleted file mode 100644 index d1332d33e9..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/ReturnTest.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class ReturnTest : Tests - { - [Fact] - public void Return() - { - Assert.Equal(42, EnumerableEx.Return(42).Single()); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/ScanTest.cs b/Ix.NET/Source/System.Interactive.Tests/ScanTest.cs deleted file mode 100644 index 964a12f5fc..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/ScanTest.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. -using System; -using System.Collections.Generic; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class ScanTest : Tests - { - [Fact] - public void Scan_Arguments() - { - AssertThrows(() => EnumerableEx.Scan(null, (x, y) => x + y)); - AssertThrows(() => EnumerableEx.Scan(new[] { 1 }, null)); - AssertThrows(() => EnumerableEx.Scan(null, 0, (x, y) => x + y)); - AssertThrows(() => EnumerableEx.Scan(new[] { 1 }, 0, null)); - } - - [Fact] - public void Scan1() - { - var res = Enumerable.Range(0, 5).Scan((n, x) => n + x).ToList(); - Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 3, 6, 10 })); - } - - [Fact] - public void Scan2() - { - var res = Enumerable.Range(0, 5).Scan(10, (n, x) => n - x).ToList(); - Assert.True(Enumerable.SequenceEqual(res, new[] { 10, 9, 7, 4, 0 })); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/SelectManyTest.cs b/Ix.NET/Source/System.Interactive.Tests/SelectManyTest.cs deleted file mode 100644 index 6d9b7123b7..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/SelectManyTest.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. -using System; -using System.Collections.Generic; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class SelectManyTest : Tests - { - [Fact] - public void SelectMany_Arguments() - { - AssertThrows(() => EnumerableEx.SelectMany(null, new[] { 1 })); - AssertThrows(() => EnumerableEx.SelectMany(new[] { 1 }, null)); - } - - [Fact] - public void SelectMany() - { - var res = new[] { 1, 2 }.SelectMany(new[] { 'a', 'b', 'c' }).ToList(); - Assert.True(Enumerable.SequenceEqual(res, new[] { 'a', 'b', 'c', 'a', 'b', 'c' })); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/ShareTest.cs b/Ix.NET/Source/System.Interactive.Tests/ShareTest.cs deleted file mode 100644 index 256428241e..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/ShareTest.cs +++ /dev/null @@ -1,125 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; -using System.Collections; - -namespace Tests -{ - public class ShareTest : Tests - { - [Fact] - public void Share_Arguments() - { - AssertThrows(() => EnumerableEx.Share(null)); - } - - [Fact] - public void Share1() - { - var rng = Enumerable.Range(0, 5).Share(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - HasNext(e1, 3); - HasNext(e1, 4); - NoNext(e1); - } - - [Fact] - public void Share2() - { - var rng = Enumerable.Range(0, 5).Share(); - - var e1 = rng.GetEnumerator(); - var e2 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e2, 1); - HasNext(e1, 2); - HasNext(e2, 3); - HasNext(e1, 4); - NoNext(e2); - NoNext(e1); - } - - [Fact] - public void Share3() - { - var rng = Enumerable.Range(0, 5).Share(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - - var e2 = rng.GetEnumerator(); - HasNext(e2, 3); - HasNext(e2, 4); - NoNext(e2); - NoNext(e1); - } - - [Fact] - public void Share4() - { - var rng = Enumerable.Range(0, 5).Share(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - - e1.Dispose(); - Assert.False(e1.MoveNext()); - } - - [Fact] - public void Share5() - { - var rng = Enumerable.Range(0, 5).Share(); - - var e1 = rng.GetEnumerator(); - HasNext(e1, 0); - HasNext(e1, 1); - HasNext(e1, 2); - - rng.Dispose(); - AssertThrows(() => e1.MoveNext()); - AssertThrows(() => rng.GetEnumerator()); - AssertThrows(() => ((IEnumerable)rng).GetEnumerator()); - } - - [Fact] - public void Share6() - { - var rng = Enumerable.Range(0, 5).Share(); - - var e1 = ((IEnumerable)rng).GetEnumerator(); - Assert.True(e1.MoveNext()); - Assert.Equal(0, (int)e1.Current); - } - - [Fact] - public void ShareLambda_Arguments() - { - AssertThrows(() => EnumerableEx.Share(null, xs => xs)); - AssertThrows(() => EnumerableEx.Share(new[] { 1 }, null)); - } - - [Fact] - public void ShareLambda() - { - var n = 0; - var res = Enumerable.Range(0, 10).Do(_ => n++).Share(xs => xs.Zip(xs, (l, r) => l + r).Take(4)).ToList(); - Assert.True(res.SequenceEqual(new[] { 0 + 1, 2 + 3, 4 + 5, 6 + 7 })); - Assert.Equal(8, n); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/SkipLastTest.cs b/Ix.NET/Source/System.Interactive.Tests/SkipLastTest.cs deleted file mode 100644 index 28242f354e..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/SkipLastTest.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class SkipLastTest : Tests - { - [Fact] - public void SkipLast_Arguments() - { - AssertThrows(() => EnumerableEx.SkipLast(null, 5)); - AssertThrows(() => EnumerableEx.SkipLast(new[] { 1 }, -1)); - } - - [Fact] - public void SkipLast_Empty() - { - var e = Enumerable.Empty(); -#if NETCOREAPP2_1 || WINDOWS_UWP - var r = EnumerableEx.SkipLast(e, 1).ToList(); -#else - var r = e.SkipLast(1).ToList(); -#endif - Assert.True(Enumerable.SequenceEqual(r, e)); - } - - [Fact] - public void SkipLast_All() - { - var e = Enumerable.Range(0, 5); -#if NETCOREAPP2_1 || WINDOWS_UWP - var r = EnumerableEx.SkipLast(e, 0).ToList(); -#else - var r = e.SkipLast(0).ToList(); -#endif - Assert.True(Enumerable.SequenceEqual(r, e)); - } - - [Fact] - public void SkipLast_Part() - { - var e = Enumerable.Range(0, 5); -#if NETCOREAPP2_1 || WINDOWS_UWP - var r = EnumerableEx.SkipLast(e, 3).ToList(); -#else - var r = e.SkipLast(3).ToList(); -#endif - Assert.True(Enumerable.SequenceEqual(r, e.Take(2))); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/StartWithTest.cs b/Ix.NET/Source/System.Interactive.Tests/StartWithTest.cs deleted file mode 100644 index 9719b80e43..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/StartWithTest.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class StartWithTest : Tests - { - [Fact] - public void StartWith_Arguments() - { - AssertThrows(() => EnumerableEx.StartWith(null, 5)); - } - - [Fact] - public void StartWith1() - { - var e = Enumerable.Range(1, 5); - var r = e.StartWith(0).ToList(); - Assert.True(Enumerable.SequenceEqual(r, Enumerable.Range(0, 6))); - } - - [Fact] - public void StartWith2() - { - var oops = false; - var e = Enumerable.Range(1, 5).Do(_ => oops = true); - var r = e.StartWith(0).Take(1).ToList(); - Assert.False(oops); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/TakeLastTest.cs b/Ix.NET/Source/System.Interactive.Tests/TakeLastTest.cs deleted file mode 100644 index fd3318b820..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/TakeLastTest.cs +++ /dev/null @@ -1,73 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class TakeLastTest : Tests - { - [Fact] - public void TakeLast_Arguments() - { - AssertThrows(() => EnumerableEx.TakeLast(null, 5)); - AssertThrows(() => EnumerableEx.TakeLast(new[] { 1 }, -1)); - } - - [Fact] - public void TakeLast_TakeZero() - { - var e = Enumerable.Range(1, 5); -#if NETCOREAPP2_1 || WINDOWS_UWP - var r = EnumerableEx.TakeLast(e, 0).ToList(); -#else - var r = e.TakeLast(0).ToList(); -#endif - Assert.True(Enumerable.SequenceEqual(r, Enumerable.Empty())); - } - - [Fact] - public void TakeLast_Empty() - { - var e = Enumerable.Empty(); - -#if NETCOREAPP2_1 || WINDOWS_UWP - var r = EnumerableEx.TakeLast(e, 1).ToList(); -#else - var r = e.TakeLast(1).ToList(); -#endif - Assert.True(Enumerable.SequenceEqual(r, e)); - } - - [Fact] - public void TakeLast_All() - { - var e = Enumerable.Range(0, 5); - -#if NETCOREAPP2_1 || WINDOWS_UWP - var r = EnumerableEx.TakeLast(e, 5).ToList(); -#else - var r = e.TakeLast(5).ToList(); -#endif - - Assert.True(Enumerable.SequenceEqual(r, e)); - } - - [Fact] - public void TakeLast_Part() - { - var e = Enumerable.Range(0, 5); -#if NETCOREAPP2_1 || WINDOWS_UWP - var r = EnumerableEx.TakeLast(e, 3).ToList(); -#else - var r = e.TakeLast(3).ToList(); -#endif - Assert.True(Enumerable.SequenceEqual(r, e.Skip(2))); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/ThrowTest.cs b/Ix.NET/Source/System.Interactive.Tests/ThrowTest.cs deleted file mode 100644 index 8c8d878252..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/ThrowTest.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class ThrowTest : Tests - { - [Fact] - public void Throw_Arguments() - { - AssertThrows(() => EnumerableEx.Throw(null)); - } - - [Fact] - public void Throw() - { - var ex = new MyException(); - var xs = EnumerableEx.Throw(ex); - - var e = xs.GetEnumerator(); - AssertThrows(() => e.MoveNext()); - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/UsingTest.cs b/Ix.NET/Source/System.Interactive.Tests/UsingTest.cs deleted file mode 100644 index 10da9eedb6..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/UsingTest.cs +++ /dev/null @@ -1,75 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class UsingTest : Tests - { - [Fact] - public void Using_Arguments() - { - AssertThrows(() => EnumerableEx.Using(null, d => new[] { 1 })); - AssertThrows(() => EnumerableEx.Using(() => new MyDisposable(), null)); - } - - [Fact] - public void Using1() - { - var d = default(MyDisposable); - - var xs = EnumerableEx.Using(() => d = new MyDisposable(), d_ => new[] { 1 }); - Assert.Null(d); - - var d1 = default(MyDisposable); - xs.ForEach(_ => { d1 = d; Assert.NotNull(d1); Assert.False(d1.Done); }); - Assert.True(d1.Done); - - var d2 = default(MyDisposable); - xs.ForEach(_ => { d2 = d; Assert.NotNull(d2); Assert.False(d2.Done); }); - Assert.True(d2.Done); - - Assert.NotSame(d1, d2); - } - - [Fact] - public void Using2() - { - var d = default(MyDisposable); - - var xs = EnumerableEx.Using(() => d = new MyDisposable(), d_ => EnumerableEx.Throw(new MyException())); - Assert.Null(d); - - AssertThrows(() => xs.ForEach(_ => { })); - Assert.True(d.Done); - } - - [Fact] - public void Using3() - { - var d = default(MyDisposable); - - var xs = EnumerableEx.Using(() => d = new MyDisposable(), d_ => { throw new MyException(); }); - Assert.Null(d); - - AssertThrows(() => xs.ForEach(_ => { })); - Assert.True(d.Done); - } - - private class MyDisposable : IDisposable - { - public bool Done; - - public void Dispose() - { - Done = true; - } - } - } -} diff --git a/Ix.NET/Source/System.Interactive.Tests/WhileTest.cs b/Ix.NET/Source/System.Interactive.Tests/WhileTest.cs deleted file mode 100644 index 5455de9557..0000000000 --- a/Ix.NET/Source/System.Interactive.Tests/WhileTest.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Text; -using System.Linq; -using Xunit; - -namespace Tests -{ - public class WhileTest : Tests - { - [Fact] - public void While_Arguments() - { - AssertThrows(() => EnumerableEx.While(null, new[] { 1 })); - AssertThrows(() => EnumerableEx.While(() => true, null)); - } - - [Fact] - public void While1() - { - var x = 5; - var res = EnumerableEx.While(() => x > 0, EnumerableEx.Defer(() => new[] { x }).Do(_ => x--)).ToList(); - Assert.True(Enumerable.SequenceEqual(res, new[] { 5, 4, 3, 2, 1 })); - } - - [Fact] - public void While2() - { - var x = 0; - var res = EnumerableEx.While(() => x > 0, EnumerableEx.Defer(() => new[] { x }).Do(_ => x--)).ToList(); - Assert.True(Enumerable.SequenceEqual(res, new int[0])); - } - } -}