public void Redundant_Partition_Test()
        {
            var input = new LinkedListWithInit <int> {
                1, 2, 3, 4, 5, 6
            };
            var pr = new PartitionRefinement <int> (new List <LinkedList <int> > {
                input
            });

            Assert.AreEqual(1, pr.Partition.Count);

            var divided = pr.Refine(new List <int> {
                1, 2, 3, 4, 5, 6
            });

            Assert.IsFalse(divided.Any());

            var divided_2 = pr.Refine(new List <int> {
                2, 3, 4, 5, 6
            });

            Assert.IsTrue(divided_2.Any());

            var divided_3 = pr.Refine(new List <int> {
                1
            });

            Assert.AreEqual(0, divided_3.Count);
            Assert.AreEqual(2, pr.Partition.Count);
        }
        public void Access_Operator_Test()
        {
            var input = new LinkedListWithInit <int> {
                1, 2, 3, 4, 5, 6
            };
            var pr = new PartitionRefinement <int> (new List <LinkedList <int> > {
                input
            });

            Assert.AreSame(input, pr [1]);
            Assert.AreSame(input, pr [6]);

            var divided = pr.Refine(new List <int> {
                1, 2, 3
            });
            var first  = divided [0].Difference;
            var second = divided [0].Intersection;

            foreach (var el in first)
            {
                Assert.AreSame(first, pr [el]);
            }
            foreach (var el in second)
            {
                Assert.AreSame(second, pr [el]);
            }

            var devided_2 = pr.Refine(new List <int> {
                3, 4
            });

            Assert.AreEqual(2, devided_2.Count);
            var firstIntersect  = devided_2 [0].Intersection;
            var firstDiff       = devided_2 [0].Difference;
            var secondIntersect = devided_2 [1].Intersection;
            var secondDiff      = devided_2 [1].Difference;

            foreach (var el in firstIntersect)
            {
                Assert.AreSame(firstIntersect, pr [el]);
            }
            foreach (var el in firstDiff)
            {
                Assert.AreSame(firstDiff, pr [el]);
            }
            foreach (var el in secondIntersect)
            {
                Assert.AreSame(secondIntersect, pr [el]);
            }
            foreach (var el in secondDiff)
            {
                Assert.AreSame(secondDiff, pr [el]);
            }
        }
Esempio n. 3
0
        static void Main()
        {
            Console.WriteLine("Write a program that removes from given sequence all negative numbers\n");

            LinkedList<double> numbersList = new LinkedListWithInit<double> { 45.2, 4.87, 4, 4.45, -5, -5.34, -5, 256, 3.38, 3, 2, 4, -48.2, 4, 4, -8.2, 0 };
            Console.WriteLine("The original sequence of numbers is:\n");
            Console.WriteLine(String.Join(", ", numbersList));
            Console.WriteLine("\n");

            RemoveNegativeUtil.PositiveNumbersSubSet(numbersList);

            Console.WriteLine("The subsequence of the positive numbers is:\n");
            Console.WriteLine(String.Join(", ", numbersList));
            Console.WriteLine("\n");
        }
        public void Basic_Partition_Test()
        {
            var input = new LinkedListWithInit <int> {
                1, 2, 3, 4, 5, 6
            };
            var pr = new PartitionRefinement <int> (new List <LinkedList <int> > {
                input
            });

            Assert.AreEqual(1, pr.Partition.Count);

            var divided = pr.Refine(new List <int> {
                1, 2, 3
            });

            Assert.AreEqual(1, divided.Count);
            Assert.AreEqual(2, pr.Partition.Count);
            Assert.AreSame(input, divided [0].Difference);
            Assert.IsTrue(ListEquals(new LinkedListWithInit <int> {
                1, 2, 3
            }, divided[0].Intersection));
            Assert.IsTrue(ListEquals(new LinkedListWithInit <int> {
                4, 5, 6
            }, divided[0].Difference));

            var divided_2 = pr.Refine(new List <int> {
                3, 4
            });

            Assert.AreEqual(2, divided_2.Count);
            Assert.AreEqual(4, pr.Partition.Count);

            var divided_3 = pr.Refine(new List <int> {
                1, 6
            });

            Assert.AreEqual(2, divided_3.Count);
            Assert.AreEqual(6, pr.Partition.Count);

            var divided_4 = pr.Refine(new List <int> {
                1, 2, 3, 4, 5, 6
            });

            Assert.AreEqual(0, divided_4.Count);
            Assert.AreEqual(6, pr.Partition.Count);
        }
Esempio n. 5
0
        /// <summary>
        /// Returns property name using lambda
        /// </summary>
        /// <returns></returns>
        public string GetPropertyName()
        {
            // create a list of property names
            var nameTokens = new LinkedListWithInit <string>()
            {
                MemberExpresion.GetMemberExpressionName()
            };

            // get nested expression
            var parentExp = MemberExpresion.Expression;

            // while nested expression is member expression
            while (parentExp is MemberExpression parentMemberExpression)
            {
                // add string property name to the list
                nameTokens.AddFirst(parentMemberExpression.GetMemberExpressionName());

                // reset the parentExp to go one more level deep
                parentExp = parentMemberExpression.Expression;
            }

            // join the tokens together
            return(string.Join(Deliminter, nameTokens));
        }