public void TestNullIn()
        {
            // arrange
            // act
            var values = StartTest()
                         .Where(x => x.Byte_N.In(new byte?[] { null }))
                         .ToArray(Executor);

            // assert
            Assert.AreEqual(1, values.Length);
            TestDataTable.Compare(TestDataTables.DataTypeTestNulled, values[0]);
        }
        public void TestDivide()
        {
            // arrange
            // act
            var values = StartTest()
                         .Where(x => x.PrimaryKey / 2 == TestDataTables.DataTypeTestNulled.PrimaryKey / 2)
                         .ToList(Executor);

            // assert
            Assert.AreEqual(1, values.Count);
            TestDataTable.Compare(TestDataTables.DataTypeTestNulled, values[0]);
        }
        public void TestNonEquality()
        {
            // arrange
            // act
            var values = StartTest()
                         .Where(x => x.PrimaryKey != TestDataTables.DataTypeTestNotNulled.PrimaryKey)
                         .ToIEnumerable(Executor)
                         .ToList();

            // assert
            Assert.AreEqual(1, values.Count);
            TestDataTable.Compare(TestDataTables.DataTypeTestNulled, values[0]);
        }
        public void TestEqualityForNullable()
        {
            // arrange
            // act
            var values = StartTest()
                         .Where(x => x.Float_N == null)
                         .ToIEnumerable(Executor)
                         .ToList();

            // assert
            Assert.AreEqual(1, values.Count);
            TestDataTable.Compare(TestDataTables.DataTypeTestNulled, values[0]);
        }
        public void TestValues()
        {
            // arrange
            // act
            var values = StartTest()
                         .ToIEnumerable(Executor)
                         .ToList();

            // assert
            Assert.AreEqual(2, values.Count);
            TestDataTable.Compare(TestDataTables.DataTypeTestNotNulled, values[0]);
            TestDataTable.Compare(TestDataTables.DataTypeTestNulled, values[1]);
        }
        public void TestOrderByDesc()
        {
            // arrange
            // act
            var values = StartTest()
                         .OrderByDesc(x => x.PrimaryKey)
                         .ToList(Executor);

            // assert
            Assert.AreEqual(2, values.Count);
            TestDataTable.Compare(TestDataTables.DataTypeTestNulled, values[0]);
            TestDataTable.Compare(TestDataTables.DataTypeTestNotNulled, values[1]);
        }
        public void TestAndCondition()
        {
            // arrange
            // act
            var values = StartTest()
                         .Where(x => x.PrimaryKey == TestDataTables.DataTypeTestNotNulled.PrimaryKey && x.DateTime == TestDataTables.DataTypeTestNotNulled.DateTime)
                         .ToIEnumerable(Executor)
                         .ToList();

            // assert
            Assert.AreEqual(1, values.Count);
            TestDataTable.Compare(TestDataTables.DataTypeTestNotNulled, values[0]);
        }
        public void TestIn()
        {
            // arrange
            // act
            var values = StartTest()
                         .Where(x => x.PrimaryKey.In(new int[1] {
                TestDataTables.DataTypeTestNulled.PrimaryKey
            }))
                         .ToArray(Executor);

            // assert
            Assert.AreEqual(1, values.Length);
            TestDataTable.Compare(TestDataTables.DataTypeTestNulled, values[0]);
        }
        public void TestGreaterThan()
        {
            // arrange
            var pk = TestDataTables.DataTypeTestNulled.PrimaryKey - 1;

            // act
            var values = StartTest()
                         .Where(x => x.PrimaryKey > pk)
                         .ToIEnumerable(Executor)
                         .ToList();

            // assert
            Assert.AreEqual(1, values.Count);
            TestDataTable.Compare(TestDataTables.DataTypeTestNulled, values[0]);
        }
        public void TestJoins()
        {
            // arrange
            // act
            var values = Query <One2One>()
                         .From(x => x.T1)
                         .InnerJoinOne(x => x.T2).On((q, t2) => q.T1.PrimaryKey == t2.PrimaryKey)
                         .ToIEnumerable(Executor)
                         .ToList();

            // assert
            Assert.AreEqual(2, values.Count);
            TestDataTable.Compare(TestDataTables.DataTypeTestNotNulled, values[0].T1);
            TestDataTable.Compare(TestDataTables.DataTypeTestNotNulled, values[0].T2);
            TestDataTable.Compare(TestDataTables.DataTypeTestNulled, values[1].T1);
            TestDataTable.Compare(TestDataTables.DataTypeTestNulled, values[1].T2);
        }