public void TestBsonInt32Equals()
        {
            var a = new BsonInt32(1);
            var b = new BsonInt32(1);
            var c = new BsonInt64(1L);
            var d = new BsonDouble(1.0);
            var e = new BsonInt32(2);
            var f = new BsonInt64(2L);
            var g = new BsonDouble(2.0);
            var n = (BsonInt32)null;

            Assert.IsTrue(object.Equals(a, b));
            Assert.IsFalse(object.Equals(a, c));
            Assert.IsFalse(object.Equals(a, d));
            Assert.IsFalse(object.Equals(a, e));
            Assert.IsFalse(object.Equals(a, f));
            Assert.IsFalse(object.Equals(a, g));
            Assert.IsFalse(object.Equals(a, BsonNull.Value));
            Assert.IsFalse(a.Equals(n));
            Assert.IsFalse(a.Equals(null));

            Assert.IsTrue(a == b);
            Assert.IsTrue(a == c);
            Assert.IsTrue(a == d);
            Assert.IsFalse(a == e);
            Assert.IsFalse(a == f);
            Assert.IsFalse(a == g);
            Assert.IsFalse(a == BsonNull.Value);
            Assert.IsFalse(a == null);
            Assert.IsFalse(null == a);
            Assert.IsTrue(n == null);
            Assert.IsTrue(null == n);

            Assert.IsFalse(a != b);
            Assert.IsFalse(a != c);
            Assert.IsFalse(a != d);
            Assert.IsTrue(a != e);
            Assert.IsTrue(a != f);
            Assert.IsTrue(a != g);
            Assert.IsTrue(a != BsonNull.Value);
            Assert.IsTrue(a != null);
            Assert.IsTrue(null != a);
            Assert.IsFalse(n != null);
            Assert.IsFalse(null != n);
        }
        public void TestBsonInt32Equals()
        {
            var a = new BsonInt32(1);
            var b = new BsonInt32(1);
            var c = new BsonInt64(1L);
            var d = new BsonDouble(1.0);
            var e = new BsonInt32(2);
            var f = new BsonInt64(2L);
            var g = new BsonDouble(2.0);
            var n = (BsonInt32)null;

            Assert.IsTrue(object.Equals(a, b));
            Assert.IsFalse(object.Equals(a, c));
            Assert.IsFalse(object.Equals(a, d));
            Assert.IsFalse(object.Equals(a, e));
            Assert.IsFalse(object.Equals(a, f));
            Assert.IsFalse(object.Equals(a, g));
            Assert.IsFalse(object.Equals(a, BsonNull.Value));
            Assert.IsFalse(a.Equals(n));
            Assert.IsFalse(a.Equals(null));

            Assert.IsTrue(a == b);
            Assert.IsTrue(a == c);
            Assert.IsTrue(a == d);
            Assert.IsFalse(a == e);
            Assert.IsFalse(a == f);
            Assert.IsFalse(a == g);
            Assert.IsFalse(a == BsonNull.Value);
            Assert.IsFalse(a == null);
            Assert.IsFalse(null == a);
            Assert.IsTrue(n == null);
            Assert.IsTrue(null == n);

            Assert.IsFalse(a != b);
            Assert.IsFalse(a != c);
            Assert.IsFalse(a != d);
            Assert.IsTrue(a != e);
            Assert.IsTrue(a != f);
            Assert.IsTrue(a != g);
            Assert.IsTrue(a != BsonNull.Value);
            Assert.IsTrue(a != null);
            Assert.IsTrue(null != a);
            Assert.IsFalse(n != null);
            Assert.IsFalse(null != n);
        }