### Question:
LauncherConfig { @Override public String toString() { final StringBuilder launchablesToString = new StringBuilder(); final int n = launchables.size(); int i = 0; for (final LaunchableConfig config : launchables) { launchablesToString.append(config); i++; if (i < n) { launchablesToString.append(System.lineSeparator()).append(Constant.TAB); } } return new StringBuilder(MIN_LENGTH).append(getClass().getSimpleName()) .append(" [level=") .append(level) .append(", rate=") .append(rate) .append(", launchables=") .append(System.lineSeparator()) .append(Constant.TAB) .append(launchablesToString.toString()) .append("]") .toString(); } LauncherConfig(int level, int rate, Collection<LaunchableConfig> launchables); static List<LauncherConfig> imports(Configurer configurer); static LauncherConfig imports(Xml node); static Xml exports(LauncherConfig config); int getLevel(); int getRate(); Iterable<LaunchableConfig> getLaunchables(); @Override int hashCode(); @Override boolean equals(Object object); @Override String toString(); static final String NODE_LAUNCHER; static final String ATT_LEVEL; static final String ATT_RATE; }### Answer:
@Test void testToString() { final LaunchableConfig launchable = new LaunchableConfig("media", 10, 1, 2, new Force(1.0, 2.0)); final LauncherConfig launcher = new LauncherConfig(0, 1, Arrays.asList(launchable, launchable)); assertEquals("LauncherConfig [level=0, rate=1, launchables=" + System.lineSeparator() + Constant.TAB + "LaunchableConfig [media=media, delay=10, ox=1, oy=2, vector=" + "Force [fh=1.0, fv=2.0, velocity=0.0, sensibility=0.0]]" + System.lineSeparator() + Constant.TAB + "LaunchableConfig [media=media, delay=10, ox=1, oy=2, vector=" + "Force [fh=1.0, fv=2.0, velocity=0.0, sensibility=0.0]]]", launcher.toString()); }