public void TestEquality()
        {
            Assert.True(SQLiteVersion.Of(3080911).Equals(SQLiteVersion.Of(3080911)));
            Assert.True(SQLiteVersion.Of(3080911).Equals((object)SQLiteVersion.Of(3080911)));
            Assert.True(SQLiteVersion.Of(3080911) == SQLiteVersion.Of(3080911));
            Assert.False(SQLiteVersion.Of(3080911) != SQLiteVersion.Of(3080911));

            SQLiteVersion[] notEqualTests =
            {
                SQLiteVersion.Of(3080911),
                SQLiteVersion.Of(2080911),
                SQLiteVersion.Of(3070911),
                SQLiteVersion.Of(3080910)
            };

            for (int i = 0; i < notEqualTests.Length; i++)
            {
                for (int j = i + 1; j < notEqualTests.Length; j++)
                {
                    Assert.False(notEqualTests[i].Equals(notEqualTests[j]));
                    Assert.False(notEqualTests[i].Equals((object)notEqualTests[j]));
                    Assert.False(notEqualTests[i] == notEqualTests[j]);
                    Assert.True(notEqualTests[i] != notEqualTests[j]);
                }
            }

            Assert.False(SQLiteVersion.Of(3080911).Equals(null));
            Assert.False(SQLiteVersion.Of(3080911).Equals(""));
        }
        public void TestToString()
        {
            Tuple <int, string>[] tests =
            {
                Tuple.Create(3008007,  "3.8.7"),
                Tuple.Create(44008007, "44.8.7"),
                Tuple.Create(3008080,  "3.8.80"),
                Tuple.Create(3088007,  "3.88.7")
            };

            foreach (var test in tests)
            {
                Assert.Equal(test.Item2, SQLiteVersion.Of(test.Item1).ToString());
            }
        }
        public void TestGetHashcode()
        {
            SQLiteVersion[] equalObjects =
            {
                SQLiteVersion.Of(3080911),
                SQLiteVersion.Of(3080911),
                SQLiteVersion.Of(3080911)
            };

            for (int i = 0; i < equalObjects.Length; i++)
            {
                for (int j = i + 1; j < equalObjects.Length; j++)
                {
                    Assert.Equal(equalObjects[j].GetHashCode(), equalObjects[i].GetHashCode());
                }
            }
        }
        public void TestComparison()
        {
            Assert.Equal(0, SQLiteVersion.Of(3080911).CompareTo(SQLiteVersion.Of(3080911)));

            Assert.True(SQLiteVersion.Of(3080911) < SQLiteVersion.Of(3080912));
            Assert.True(SQLiteVersion.Of(3080911) < SQLiteVersion.Of(3081911));
            Assert.True(SQLiteVersion.Of(3080911) < SQLiteVersion.Of(4080911));

            Assert.Throws <ArgumentException>(() => SQLiteVersion.Of(3080911).CompareTo(null));
            Assert.Throws <ArgumentException>(() => SQLiteVersion.Of(3080911).CompareTo(""));

            Assert.True(SQLiteVersion.Of(3080911) > SQLiteVersion.Of(3080910));
            Assert.True(SQLiteVersion.Of(3080911) >= SQLiteVersion.Of(3080911));
            Assert.True(SQLiteVersion.Of(3080911) >= SQLiteVersion.Of(3080910));

            Assert.False(SQLiteVersion.Of(3080911) < SQLiteVersion.Of(3080910));
            Assert.True(SQLiteVersion.Of(3080911) <= SQLiteVersion.Of(3080911));
            Assert.False(SQLiteVersion.Of(3080911) < SQLiteVersion.Of(3080910));
        }
 public void TestToInt()
 {
     Assert.Equal(3080911, SQLiteVersion.Of(3080911).ToInt());
 }
 public void TestToString(int value, string expected)
 {
     Assert.Equal(expected, SQLiteVersion.Of(value).ToString());
 }