Example #1
0
            public void should_omit_requested_properties()
            {
                var joseph = new Developer("Joseph", "Hart", 30);

                dynamic nameless = NDashLib.OmitExpando(joseph, "FirstName", "LastName");

                Assert.Equal(30, nameless.Age);
            }
Example #2
0
            public void should_omit_requested_properties()
            {
                var joseph = new Developer("Joseph", "Hart", 30);

                NamelessDeveloper nameless = NDashLib.Omit <NamelessDeveloper>(joseph, "FirstName", "LastName");

                Assert.Equal(30, nameless.Age);
                Assert.False(nameless.IsGettingPromotionForThis);
            }
Example #3
0
                public void should_pick_matching_properties()
                {
                    var joseph = new Developer("Joseph", null, 30);

                    AnonymousDeveloper nonNils = NDashLib.PickBy <AnonymousDeveloper>(joseph, val => val != default);

                    Assert.Equal("Joseph", nonNils.FirstName);
                    Assert.Equal(30, nonNils.Age);
                }
Example #4
0
        public void TestArity1()
        {
            Func <int, bool> isEven = i => i % 2 == 0;

            var isOdd = NDashLib.Negate(isEven);

            Assert.True(isEven(4));
            Assert.True(isOdd(5));
        }
Example #5
0
                public void should_pick_matching_properties()
                {
                    var joseph = new Developer("Joseph", "Hart", 30);

                    dynamic ageless = NDashLib.PickByExpando(joseph, IsNameProperty);

                    Assert.Equal("Joseph", ageless.FirstName);
                    Assert.Equal("Hart", ageless.LastName);
                }
Example #6
0
            public void should_omit_requested_properties()
            {
                var joseph = new Developer("Joseph", "Hart", 30);

                Dictionary <string, object> nameless = NDashLib.Omit(joseph, "FirstName", "LastName");

                Assert.Single(nameless);
                Assert.Equal(30, nameless["Age"]);
            }
Example #7
0
        public void should_return_2_nested_functions()
        {
            string append(string a, string b) => a + b;

            Assert.Equal(
                append("a", "b"),
                NDashLib.Curry <string, string, string>(append)("a")("b")
                );
        }
Example #8
0
                public void should_pick_matching_properties()
                {
                    var joseph = new Developer("Joseph", null, 30);

                    Dictionary <string, object> nonNils = NDashLib.PickBy(joseph, val => val != default);

                    Assert.Equal(2, nonNils.Count);
                    Assert.Equal("Joseph", nonNils["FirstName"]);
                    Assert.Equal(30, nonNils["Age"]);
                }
Example #9
0
                public void should_pick_matching_properties()
                {
                    var joseph = new Developer("Joseph", "Hart", 30);

                    Dictionary <string, object> ageless = NDashLib.PickBy(joseph, IsNameProperty);

                    Assert.Equal(2, ageless.Count);
                    Assert.Equal("Joseph", ageless["FirstName"]);
                    Assert.Equal("Hart", ageless["LastName"]);
                }
Example #10
0
                public void should_pick_matching_properties()
                {
                    var joseph = new Developer("Joseph", "Hart", 30);

                    AgelessDeveloper ageless = NDashLib.PickBy <AgelessDeveloper>(joseph, IsNameProperty);

                    Assert.Equal("Joseph", ageless.FirstName);
                    Assert.Equal("Hart", ageless.LastName);
                    Assert.Null(ageless.MiddleName);
                }
Example #11
0
            public void should_pick_requested_properties()
            {
                var joseph = new Developer("Joseph", "Hart", 25);

                AgelessDeveloper ageless = NDashLib.Pick <AgelessDeveloper>(joseph, "FirstName", "LastName");

                Assert.Equal("Joseph", ageless.FirstName);
                Assert.Equal("Hart", ageless.LastName);
                Assert.Null(ageless.MiddleName);
            }
Example #12
0
            public void should_pick_requested_properties()
            {
                var joseph = new Developer("Joseph", "Hart", 25);

                dynamic ageless = NDashLib.PickExpando(joseph, "FirstName", "LastName");

                Assert.Equal(2, (ageless as IDictionary <string, object>).Count);
                Assert.Equal("Joseph", ageless.FirstName);
                Assert.Equal("Hart", ageless.LastName);
            }
Example #13
0
            public void should_pick_requested_properties()
            {
                var joseph = new Developer("Joseph", "Hart", 25);

                Dictionary <string, object> ageless = NDashLib.Pick(joseph, "FirstName", "LastName");

                Assert.Equal(2, ageless.Count);
                Assert.Equal("Joseph", ageless["FirstName"]);
                Assert.Equal("Hart", ageless["LastName"]);
            }
Example #14
0
        public void should_return_4_nested_functions()
        {
            string append(string a, string b, string c, string d) => a + b + c + d;

            var partial = NDashLib.Curry <string, string, string, string, string>(append)("a")("b")("c");

            Assert.Equal(
                append("a", "b", "c", "d"),
                partial("d")
                );

            Assert.NotEqual(partial("d"), partial("e"));
        }
Example #15
0
        AllDict(IEnumerable <Tuple <string, Task> > nameTaskTuples)
        {
            if (!NDashLib.AreUniqueBy(nameTaskTuples, tuple => tuple.Item1))
            {
                throw new DuplicateEntriesException(nameTaskTuples);
            }

            await Task.WhenAll(nameTaskTuples.Select(tuple => tuple.Item2));

            return(nameTaskTuples.ToDictionary(
                       tuple => tuple.Item1,
                       tuple => ForceGetResult(tuple.Item2)
                       ));
        }
Example #16
0
        public async Task should_accept_up_to_16_parameters_of_varying_types_async()
        {
            // and you thought I was a one-trick pony
            await NDashLib.NoopAsync();

            await NDashLib.NoopAsync(1);

            await NDashLib.NoopAsync(1, "2");

            await NDashLib.NoopAsync(1, "2", 3f);

            await NDashLib.NoopAsync(1, "2", 3f, 4d);

            await NDashLib.NoopAsync(1, "2", 3f, 4d, 5m);

            await NDashLib.NoopAsync(1, "2", 3f, 4d, 5m, 6);

            await NDashLib.NoopAsync(1, "2", 3f, 4d, 5m, 6, "7");

            await NDashLib.NoopAsync(1, "2", 3f, 4d, 5m, 6, "7", 8f);

            await NDashLib.NoopAsync(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d);

            await NDashLib.NoopAsync(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m);

            await NDashLib.NoopAsync(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m, 11);

            await NDashLib.NoopAsync(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m, 11, "12");

            await NDashLib.NoopAsync(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m, 11, "12", 13f);

            await NDashLib.NoopAsync(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m, 11, "12", 13f, 14d);

            await NDashLib.NoopAsync(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m, 11, "12", 13f, 14d, 15m);

            await NDashLib.NoopAsync(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m, 11, "12", 13f, 14d, 15m, 16);

            Assert.True(true);
        }
Example #17
0
        public void should_accept_up_to_16_parameters_of_varying_types()
        {
            // just make sure this always compiles
            NDashLib.Noop();
            NDashLib.Noop(1);
            NDashLib.Noop(1, "2");
            NDashLib.Noop(1, "2", 3f);
            NDashLib.Noop(1, "2", 3f, 4d);
            NDashLib.Noop(1, "2", 3f, 4d, 5m);
            NDashLib.Noop(1, "2", 3f, 4d, 5m, 6);
            NDashLib.Noop(1, "2", 3f, 4d, 5m, 6, "7");
            NDashLib.Noop(1, "2", 3f, 4d, 5m, 6, "7", 8f);
            NDashLib.Noop(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d);
            NDashLib.Noop(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m);
            NDashLib.Noop(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m, 11);
            NDashLib.Noop(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m, 11, "12");
            NDashLib.Noop(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m, 11, "12", 13f);
            NDashLib.Noop(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m, 11, "12", 13f, 14d);
            NDashLib.Noop(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m, 11, "12", 13f, 14d, 15m);
            NDashLib.Noop(1, "2", 3f, 4d, 5m, 6, "7", 8f, 9d, 10m, 11, "12", 13f, 14d, 15m, 16);

            // one promotion please
            Assert.True(true);
        }
 public void should_partition_by_predicate()
 {
     var(evens, odds) = NDashLib.Partition(numbers, IsEven);
     Assert.Equal(expectedEvens, evens);
     Assert.Equal(expectedOdds, odds);
 }
Example #19
0
        public void should_return_parameter_by_reference()
        {
            var obj = new object();

            Assert.Equal(obj, NDashLib.Identity(obj));
        }