### Question:
Strings { @Deprecated public static String prettyPrint( Object o ) { if ( o == null ) { return "null"; } Class<?> clazz = o.getClass(); if ( clazz.isArray() ) { if ( clazz == byte[].class ) { return Arrays.toString( (byte[]) o ); } else if ( clazz == short[].class ) { return Arrays.toString( (short[]) o ); } else if ( clazz == int[].class ) { return Arrays.toString( (int[]) o ); } else if ( clazz == long[].class ) { return Arrays.toString( (long[]) o ); } else if ( clazz == float[].class ) { return Arrays.toString( (float[]) o ); } else if ( clazz == double[].class ) { return Arrays.toString( (double[]) o ); } else if ( clazz == char[].class ) { return Arrays.toString( (char[]) o ); } else if ( clazz == boolean[].class ) { return Arrays.toString( (boolean[]) o ); } else { return Arrays.deepToString( (Object[]) o ); } } else { return String.valueOf( o ); } } private  Strings(); @Deprecated static String prettyPrint( Object o ); @Deprecated static String escape( String arg ); @Deprecated static String joinAsLines( String... elements ); @Deprecated static void escape( Appendable output, String arg ); @Deprecated
    static final String TAB; }### Answer:
@Test void testPrettyPrint() { assertEquals( "null", prettyPrint( null ) ); assertEquals( "42", prettyPrint( 42 ) ); assertEquals( "42", prettyPrint( "42" ) ); assertEquals( "[1, 2, 3, 4]", prettyPrint( new int[]{1, 2, 3, 4} ) ); assertEquals( "[false, true, true, false]", prettyPrint( new boolean[]{false, true, true, false} ) ); assertEquals( "[a, b, z]", prettyPrint( new char[]{'a', 'b', 'z'} ) ); assertEquals( "[ab, cd, zx]", prettyPrint( new String[]{"ab", "cd", "zx"} ) ); assertEquals( "[Cat, [http: prettyPrint( new Object[]{ "Cat", new URI[]{URI.create( "http: "Dog", new int[]{1, 2, 3}, new Object[]{new Object[]{new Object[]{"Wolf"}}}} ) ); Object[] recursiveArray = {10.12345, null, "String"}; recursiveArray[1] = recursiveArray; assertEquals( "[10.12345, [...], String]", prettyPrint( recursiveArray ) ); }