@Test
    public void testStaticMethods() throws Exception {
        assertEquals(1024, bufferSizeFromPropertyName("buffer.memory.1024"));
        assertEquals(2048, bufferSizeFromPropertyName("buffer.memory.2048"));
        assertEquals(4096, bufferSizeFromPropertyName("buffer.memory.4096"));
        assertEquals(8192, bufferSizeFromPropertyName("buffer.memory.8192"));
        assertEquals(16384, bufferSizeFromPropertyName("buffer.memory.16384"));
        assertEquals(-1, bufferSizeFromPropertyName("buffer.memory.1023"));
        assertEquals(-1, bufferSizeFromPropertyName("buffer.memory.notanumber"));
        assertEquals(-1, bufferSizeFromPropertyName("buffer.fricostat"));

        try {
            checkBufferSize(1023);
            fail("Exception expected");
        } catch (IllegalArgumentException e) {
            // expected
        }

        try {
            checkBufferSize(0);
            fail("Exception expected");
        } catch (IllegalArgumentException e) {
            // expected
        }

        for (int size : validBufferSizes()) {
            checkBufferSize(size);
        }

        assertEquals("3G", displayableLongValue(3L * 1024L * 1024L * 1024L));
        assertEquals("1M", displayableLongValue(1024 * 1024));
        assertEquals("1000005", displayableLongValue(1000005L));
        assertEquals("10000000003", displayableLongValue(10000000003L));
        assertEquals(true, parseBooleanValue("z", "true"));
        assertEquals(true, parseBooleanValue("z", "TRUE"));
        assertEquals(false, parseBooleanValue("z", "false"));
        assertEquals(false, parseBooleanValue("z", "FALSE"));

        try {
            parseBooleanValue("z", "Neither True nor False");
            fail("Exception not thrown");
        } catch (IllegalArgumentException e) {
            // expected
        }

        try {
            parseBooleanValue("z", null);
            fail("Exception not thrown");
        } catch (IllegalArgumentException e) {
            // expected
        }

        assertEquals(1024L, parseLongProperty("z", "1024"));
        assertEquals(1024L, parseLongProperty("z", "1K"));
        assertEquals(1024L * 1024L, parseLongProperty("z", "1M"));
        assertEquals(1024L * 1024L * 1024L, parseLongProperty("z", "1G"));
        assertEquals(1024L * 1024L * 1024L * 1024L, parseLongProperty("z", "1T"));

        try {
            parseLongProperty("z", "not a number");
            fail("Exception not thrown");
        } catch (IllegalArgumentException e) {
            // expected
        }

        try {
            parseLongProperty("z", null);
            fail("Exception not thrown");
        } catch (IllegalArgumentException e) {
            // expected
        }

        assertEquals(0, Float.compare(0.25f, parseFloatProperty("z", "0.25")));
        assertEquals(0, Float.compare(0.0f, parseFloatProperty("z", "0")));
        assertEquals(0, Float.compare(1.0f, parseFloatProperty("z", "1")));

        try {
            parseFloatProperty("z", "not a number");
            fail("Exception not thrown");
        } catch (IllegalArgumentException e) {
            // expected
        }

        try {
            parseFloatProperty("z", null);
            fail("Exception not thrown");
        } catch (IllegalArgumentException e) {
            // expected
        }
    }