public static List<String> split( String str, char delim ) {
		return split( str, delim, false, false );
	}
@Test
	void split() {
		// empty
		assertEquals(
			Arrays.asList( "" ),
			StringUtils.split( "", ',' ) );

		// not empty
		assertEquals(
			Arrays.asList( "a" ),
			StringUtils.split( "a", ',' ) );
		assertEquals(
			Arrays.asList( "a", "b" ),
			StringUtils.split( "a,b", ',' ) );
		assertEquals(
			Arrays.asList( "a", "b", "c" ),
			StringUtils.split( "a,b,c", ',' ) );

		// empty parts
		assertEquals(
			Arrays.asList( "", "b", "c" ),
			StringUtils.split( ",b,c", ',' ) );
		assertEquals(
			Arrays.asList( "a", "", "c" ),
			StringUtils.split( "a,,c", ',' ) );
		assertEquals(
			Arrays.asList( "a", "b", "" ),
			StringUtils.split( "a,b,", ',' ) );

		// parts with leading/trailing spaces
		assertEquals(
			Arrays.asList( "a", " b", " c" ),
			StringUtils.split( "a, b, c", ',' ) );
		assertEquals(
			Arrays.asList( " a", "b", "c " ),
			StringUtils.split( " a,b,c ", ',' ) );
		assertEquals(
			Arrays.asList( "  a", "  b  ", "c  " ),
			StringUtils.split( "  a,  b  ,c  ", ',' ) );

		// space delimiter
		assertEquals(
			Arrays.asList( "a", "b", "c" ),
			StringUtils.split( "a b c", ' ' ) );
		assertEquals(
			Arrays.asList( "a", "", "", "b", "", "c" ),
			StringUtils.split( "a   b  c", ' ' ) );

		// new line delimiter
		assertEquals(
			Arrays.asList( "a", "b", "c" ),
			StringUtils.split( "a\nb\nc", '\n' ) );
		assertEquals(
			Arrays.asList( "a", "", "", "b", "", "c" ),
			StringUtils.split( "a\n\n\nb\n\nc", '\n' ) );
	}