public static int parse(String value)
    {
        return parse(value, Runtime.getRuntime().availableProcessors());
    }
@Test
    public void testParse()
    {
        assertEquals(parse("1"), 1);
        assertEquals(parse("100"), 100);
        assertEquals(parse("1", 1), 1);
        assertEquals(parse("1", 2), 1);
        assertEquals(parse("100", 4), 100);
        assertEquals(parse("1C", 4), 4);
        assertEquals(parse("2C", 8), 16);
        assertEquals(parse("1.5C", 6), 9);
        assertEquals(parse("0.1C", 1), 1);
        assertThatThrownBy(() -> parse("0"))
                .hasMessageContaining("Thread count must be positive");
        assertThatThrownBy(() -> parse("-1"))
                .hasMessageContaining("Thread count must be positive");
        assertThatThrownBy(() -> parse("0C"))
                .hasMessageContaining("Thread multiplier must be positive");
        assertThatThrownBy(() -> parse("-1C"))
                .hasMessageContaining("Thread multiplier must be positive");
        assertThatThrownBy(() -> parse("abc"))
                .isInstanceOf(NumberFormatException.class);
        assertThatThrownBy(() -> parse("abcC"))
                .isInstanceOf(NumberFormatException.class);
    }