//-------------------------------------------------------------------------
        public virtual void test_equals()
        {
            ObjIntPair <string> a  = ObjIntPair.of("1", 2);
            ObjIntPair <string> a2 = ObjIntPair.of("1", 2);
            ObjIntPair <string> b  = ObjIntPair.of("1", 3);
            ObjIntPair <string> c  = ObjIntPair.of("2", 2);
            ObjIntPair <string> d  = ObjIntPair.of("2", 3);

            assertEquals(a.Equals(a), true);
            assertEquals(a.Equals(b), false);
            assertEquals(a.Equals(c), false);
            assertEquals(a.Equals(d), false);
            assertEquals(a.Equals(a2), true);

            assertEquals(b.Equals(a), false);
            assertEquals(b.Equals(b), true);
            assertEquals(b.Equals(c), false);
            assertEquals(b.Equals(d), false);

            assertEquals(c.Equals(a), false);
            assertEquals(c.Equals(b), false);
            assertEquals(c.Equals(c), true);
            assertEquals(c.Equals(d), false);

            assertEquals(d.Equals(a), false);
            assertEquals(d.Equals(b), false);
            assertEquals(d.Equals(c), false);
            assertEquals(d.Equals(d), true);
        }
        public virtual void test_equals_bad()
        {
            ObjIntPair <string> a = ObjIntPair.of("1", 1);

            assertEquals(a.Equals(null), false);
            assertEquals(a.Equals(ANOTHER_TYPE), false);
            object unrelatedType = Pair.of(Convert.ToInt32(1), Convert.ToInt32(1));

            assertEquals(a.Equals(unrelatedType), false);
        }