public void TestFilterCoreDataSet()
        {
            var codes = new[] { "a", "b" };
            var filteredData = new CoreDataSetFilter(TestData()).RemoveWithAreaCode(codes);

            Assert.AreEqual(1, filteredData.Count());
            Assert.AreEqual("c", filteredData.First().AreaCode);
        }
        public void TestFilterCoreDataSetCaseInsensitive()
        {
            // WRT ignored codes
            var filteredData = new CoreDataSetFilter(TestData()).RemoveWithAreaCode(new[] { "A", "B" });

            Assert.AreEqual(1, filteredData.Count());
            Assert.AreEqual("c", filteredData.First().AreaCode);

            // WRT coredataset area codes
            var data = TestData();
            foreach (var coreDataSet in data)
            {
                coreDataSet.AreaCode = coreDataSet.AreaCode.ToUpper();
            }
            filteredData = new CoreDataSetFilter(data).RemoveWithAreaCode(new[] { "a", "b" });

            Assert.AreEqual(1, filteredData.Count());
            Assert.AreEqual("C", filteredData.First().AreaCode);
        }
        public void TestSelectDistinctAgeIds()
        {
            var data = new[] {
                new CoreDataSet{AgeId = 2},
                new CoreDataSet{AgeId = 2}
            };
            var ids = new CoreDataSetFilter(data).SelectDistinctAgeIds();

            // Check IDs
            Assert.AreEqual(1, ids.Count());
            Assert.AreEqual(2, ids.First());
        }
        public void TestSelectWithAreaCode()
        {
            var codes = new[] { "a", "b" };
            var filteredData = new CoreDataSetFilter(TestData()).SelectWithAreaCode(codes);

            Assert.AreEqual(2, filteredData.Count());
            Assert.IsNotNull(filteredData.First(x => x.AreaCode == "a"));
            Assert.IsNotNull(filteredData.First(x => x.AreaCode == "b"));
        }
        public void TestSelectWhereValueIsValid_InvalidValueRemoved()
        {
            var validValue = 1;

            var data = new[] {
                new CoreDataSet{Value = validValue},
                new CoreDataSet{Value = ValueData.NullValue}
            };
            var filteredData = new CoreDataSetFilter(data).SelectWhereValueIsValid();

            Assert.AreEqual(1, filteredData.Count());
            Assert.AreEqual(validValue, filteredData.First().Value);
        }
        public void TestSelectWhereCountIsValid_InvalidCountRemoved()
        {
            var data = new[] {
                new CoreDataSet{Count = null},
                 new CoreDataSet{Count = -1},
                new CoreDataSet{Count = 1}
            };
            var filteredData = new CoreDataSetFilter(data).SelectWhereCountIsValid();

            Assert.AreEqual(1, filteredData.Count());
            Assert.AreEqual(1, filteredData.First().Count);
        }
        public void TestSelectWhereCountAndDenominatorAreValid_InvalidDenominatorRemoved()
        {
            var data = new[] {
                new CoreDataSet{Count = 1,Denominator = -1},
                 new CoreDataSet{Count = 1, Denominator = 2},
            };
            var filteredData = new CoreDataSetFilter(data).SelectWhereCountAndDenominatorAreValid();

            Assert.AreEqual(1, filteredData.Count());
            Assert.AreEqual(2, filteredData.First().Denominator);
        }