    @Test
    public void testCmp() {

        Value val1 = new Value("hello");
        Value val2 = new Value("world");

        assertFalse("Expected values not to be equal", val1.cmp(val2));

        Value val3 = new Value("hello");
        Value val4 = new Value("hello");

        assertTrue("Expected values to be equal", val3.cmp(val4));

        Value inter = new Value(new Object[] {1});
        Object[] interExp = new Object[] {1};

        assertTrue(new Value(inter.asObj()).cmp(new Value(interExp)));

        String dog = "dog";
        Value val5 = new Value(dog);
        Value val6 = Value.fromRlpEncoded(Hex.decode("83646f67"));
        assertThat(val5.cmp(val6)).isTrue();

        val5 = Value.fromRlpEncoded(Hex.decode("83646f67"));
        assertThat(val5.cmp(val6)).isTrue();

        val5 = Value.fromRlpEncoded(Hex.decode("83636174"));
        assertThat(val5.cmp(val6)).isFalse();

        assertThat(val6.cmp(null)).isFalse();
    }