public static float parseBytesIntToFloat(List data) {
        return parseBytesIntToFloat(data, 0);
    }
@Test
    public void parseBytesIntToFloat() {
        byte[] intValByte = {0x00, 0x00, 0x00, 0x0A};
        Float valueExpected = 10.0f;
        Float valueActual = TbUtils.parseBytesIntToFloat(intValByte, 3, 1, true);
        Assertions.assertEquals(valueExpected, valueActual);
        valueActual = TbUtils.parseBytesIntToFloat(intValByte, 3, 1, false);
        Assertions.assertEquals(valueExpected, valueActual);

        valueActual = TbUtils.parseBytesIntToFloat(intValByte, 2, 2, true);
        Assertions.assertEquals(valueExpected, valueActual);
        valueExpected = 2560.0f;
        valueActual = TbUtils.parseBytesIntToFloat(intValByte, 2, 2, false);
        Assertions.assertEquals(valueExpected, valueActual);

        valueExpected = 10.0f;
        valueActual = TbUtils.parseBytesIntToFloat(intValByte, 0, 4, true);
        Assertions.assertEquals(valueExpected, valueActual);
        valueExpected = 1.6777216E8f;
        valueActual = TbUtils.parseBytesIntToFloat(intValByte, 0, 4, false);
        Assertions.assertEquals(valueExpected, valueActual);

        String dataAT101 = "0x01756403671B01048836BF7701F000090722050000";
        List<Byte> byteAT101 = TbUtils.hexToBytes(ctx, dataAT101);
        float latitudeExpected = 24.62495f;
        int offset = 9;
        valueActual = TbUtils.parseBytesIntToFloat(byteAT101, offset, 4, false);
        Assertions.assertEquals(latitudeExpected, valueActual / 1000000);

        float longitudeExpected = 118.030576f;
        valueActual = TbUtils.parseBytesIntToFloat(byteAT101, offset + 4, 4, false);
        Assertions.assertEquals(longitudeExpected, valueActual / 1000000);

        valueExpected = 9.185175E8f;
        valueActual = TbUtils.parseBytesIntToFloat(byteAT101, offset);
        Assertions.assertEquals(valueExpected, valueActual);
        // 0x36BF
        valueExpected = 14015.0f;
        valueActual = TbUtils.parseBytesIntToFloat(byteAT101, offset, 2);
        Assertions.assertEquals(valueExpected, valueActual);
        // 0xBF36
        valueExpected = 48950.0f;
        valueActual = TbUtils.parseBytesIntToFloat(byteAT101, offset, 2, false);
        Assertions.assertEquals(valueExpected, valueActual);

        valueExpected = 0.0f;
        valueActual = TbUtils.parseBytesIntToFloat(byteAT101, byteAT101.size());
        Assertions.assertEquals(valueExpected, valueActual);

        try {
            TbUtils.parseBytesIntToFloat(byteAT101, byteAT101.size() + 1);
            Assertions.fail("Should throw NumberFormatException");
        } catch (RuntimeException e) {
            Assertions.assertTrue(e.getMessage().contains("is out of bounds for array with length:"));
        }
    }