public void TestFSPS(string folder)
        {
            var input        = File.ReadAllText($"{folder}\\Input.json");
            var expectedJson = File.ReadAllText($"{folder}\\Expected.json");

            var filterSortPageSelect = JToken.Parse(input).ToObject <FilterSortPageSelect <Color> >();

            using (var context = new ColorDb2Context()) {
                var colors             = context.Colors;
                var filteredColors     = filterSortPageSelect.ApplyTo(colors);
                var filteredColorsList = (filteredColors as IQueryable <dynamic>).AsEnumerable().ToList();

                var expected = JToken.Parse(expectedJson).ToObject(filteredColorsList.GetType());

                var filteredColors2 = JToken.FromObject(filteredColors).ToObject(expected.GetType());

                Assert.True(filteredColors2.IsEqualOrWrite(expected, _output));
            }
        }
        public void TestFSP(string folder)
        {
            var input        = File.ReadAllText($"{folder}\\Input.json");
            var expectedJson = File.ReadAllText($"{folder}\\Expected.json");
            var expected     = JToken.Parse(expectedJson).ToObject <List <Color> >();

            var filterSortPage = JToken.Parse(input).ToObject <FilterSortPage <Color> >();

            using (var context = new ColorDb2Context()) {
                var colors         = context.Colors;
                var filteredColors = filterSortPage.ApplyTo(colors, out int pageCount);

                Assert.True(pageCount > 1);

                var filteredColorsJson = JToken.FromObject(filteredColors).ToString();
                _output.WriteLine(filteredColorsJson);

                Assert.True(filteredColors.IsEqualOrWrite(expected, _output));
            }
        }