    @Test @SneakyThrows
    public void serializationValue() {

        assertEquals(serializationResult(TestClass.builder().pByte(Byte.MIN_VALUE).build()).pByte(), Byte.MIN_VALUE);
        assertEquals(serializationResult(TestClass.builder().pByte(Byte.MAX_VALUE).build()).pByte(), Byte.MAX_VALUE);

        assertEquals((byte)serializationResult(TestClass.builder().oByte(Byte.MIN_VALUE).build()).oByte(), Byte.MIN_VALUE);
        assertEquals((byte)serializationResult(TestClass.builder().oByte(Byte.MAX_VALUE).build()).oByte(), Byte.MAX_VALUE);

        assertEquals(serializationResult(TestClass.builder().pByteArr("Hello, world".getBytes()).build()).pByteArr(),
                     "Hello, world".getBytes());
        assertEquals(serializationResult(TestClass.builder().oByteArr(toObject(("Hello, world").getBytes())).build()).oByteArr(),
                     "Hello, world".getBytes());

        assertEquals(serializationResult(TestClass.builder().pShort(Short.MIN_VALUE).build()).pShort(), Short.MIN_VALUE);
        assertEquals((short)serializationResult(TestClass.builder().oShort(Short.MAX_VALUE).build()).oShort(), Short.MAX_VALUE);

        assertEquals(serializationResult(TestClass.builder().pInt(Integer.MIN_VALUE).build()).pInt(), Integer.MIN_VALUE);
        assertEquals((int)serializationResult(TestClass.builder().oInt(Integer.MAX_VALUE).build()).oInt(), Integer.MAX_VALUE);

        assertEquals(serializationResult(TestClass.builder().pLong(Long.MIN_VALUE).build()).pLong(), Long.MIN_VALUE);
        assertEquals((long)serializationResult(TestClass.builder().oLong(Long.MAX_VALUE).build()).oLong(), Long.MAX_VALUE);

        assertEquals(serializationResult(TestClass.builder().pFloat(Float.MIN_VALUE).build()).pFloat(), Float.MIN_VALUE);
        assertEquals(serializationResult(TestClass.builder().oFloat(Float.MAX_VALUE).build()).oFloat(), Float.MAX_VALUE);

        assertEquals(serializationResult(TestClass.builder().pDouble(Double.MIN_VALUE).build()).pDouble(), Double.MIN_VALUE);
        assertEquals(serializationResult(TestClass.builder().oDouble(Double.MAX_VALUE).build()).oDouble(), Double.MAX_VALUE);

        assertEquals(serializationResult(TestClass.builder().pBoolean(true).build()).pBoolean(), true);
        assertEquals(serializationResult(TestClass.builder().pBoolean(false).build()).pBoolean(), false);

        assertEquals((boolean)serializationResult(TestClass.builder().oBoolean(true).build()).oBoolean(), true);
        assertEquals((boolean)serializationResult(TestClass.builder().oBoolean(false).build()).oBoolean(), false);

        assertEquals(serializationResult(TestClass.builder().str("Hello, world").build()).str(), "Hello, world");

        UUID uuid = UUID.randomUUID();
        assertEquals(serializationResult(TestClass.builder().uuid(uuid).build()).uuid(), uuid);

        assertEquals(serializationResult(TestClass.builder().e(TestClass.E.B).build()).e(), TestClass.E.B);

        assertEquals(serializationResult(TestClass.builder().value(new SomeValue("test")).build())
                             .value().value(), "test");

        assertEquals(serializationResult(
                TestClass.builder()
                         .value1(new SomeValue1(Collections.singletonList(new SomeValue2(new SomeValue("test")))))
                         .build()).value1().value().get(0).value().value(), "test");

        ArrayList<List<String>> l = new ArrayList<>();
        ArrayList<String> l1 = new ArrayList<>();
        l1.add("test");
        l.add(l1);
        assertEquals(serializationResult(TestClass.builder().list(l).build()).list().get(0).get(0), "test");

        Map<String, List<String>> map = new HashMap<>();
        LinkedList<String> list = new LinkedList<>(Arrays.asList("Hello"));
        map.put("test", list);
        map.put("anothertest", list);
        assertEquals(serializationResult(TestClass.builder().map(map).build()).map().get("test").get(0), "Hello");
        assertEquals(serializationResult(TestClass.builder().map(map).build()).map().get("anothertest").get(0),
                     "Hello");

        assertFalse(serializationResult(TestClass.builder().optional(Optional.empty()).build()).optional().isPresent());
        assertTrue(serializationResult(TestClass.builder().optional(Optional.of("test")).build()).optional().isPresent());
        assertEquals(serializationResult(TestClass.builder().optional(Optional.of("test")).build()).optional().get(), "test");

        BigDecimal bigDecimal = new BigDecimal("0.00000000000000000000000000001");
        assertEquals(serializationResult(TestClass.builder().bigDecimal(bigDecimal).build()).bigDecimal(), bigDecimal);

        BigInteger bigInteger = new BigInteger("100001");
        assertEquals(serializationResult(TestClass.builder().bigInteger(bigInteger).build()).bigInteger(), bigInteger);

        Date date = new Date();
        assertEquals(serializationResult(TestClass.builder().date(date).build()).date(), date);
    }