@Override
    public boolean equals(Object o)
    {
        return o instanceof COSInteger && ((COSInteger)o).intValue() == intValue();
    }
@Test
    void testEquals()
    {
        // Consistency
        for (int i = -1000; i < 3000; i += 200)
        {
            COSInteger test1 = COSInteger.get(i);
            COSInteger test2 = COSInteger.get(i);
            COSInteger test3 = COSInteger.get(i);
            // Reflexive (x == x)
            assertEquals(test1, test1);
            // Symmetric is preserved ( x==y then y===x)
            assertEquals(test2, test1);
            assertEquals(test1, test2);
            // Transitive (if x==y && y==z then x===z)
            assertEquals(test1, test2);
            assertEquals(test2, test3);
            assertEquals(test1, test3);

            COSInteger test4 = COSInteger.get(i + 1);
            assertNotEquals(test4, test1);
        }
    }