### Question:
Config { public Config() { this(new ConfigOptions()); } Config();  Config(ConfigOptions options); private  Config(ConfigOptions options, Map<String, Object> root); Map<String, Object> getRoot(); ConfigOptions getOptions(); Object get(String path); Object get(String path, Object defaultValue); Object get(String path, Supplier<Object> defaultValue); T get(String path, Class<T> type); T get(String path, Class<T> type, T defaultValue); T get(String path, Class<T> type, Supplier<T> defaultValue); String getString(String path); String getString(String path, String defaultValue); boolean getBoolean(String path); boolean getBoolean(String path, boolean defaultValue); Number getNumber(String path); Number getNumber(String path, Number defaultValue); int getInt(String path); int getInt(String path, int defaultValue); long getLong(String path); long getLong(String path, long defaultValue); float getFloat(String path); float getFloat(String path, float defaultValue); double getDouble(String path); double getDouble(String path, double defaultValue); Map<String, Object> getMap(String path); Map<String, Object> getMap(String path, Map<String, Object> defaultValue); List<Object> getList(String path); List<Object> getList(String path, List<Object> defaultValue); BigInteger getBigInteger(String path); BigInteger getBigInteger(String path, BigInteger defaultValue); BigDecimal getBigDecimal(String path); BigDecimal getBigDecimal(String path, BigDecimal defaultValue); Config getConfig(String path); Object set(String path, Object value); boolean has(String path); Set<String> getKeys(); Set<String> getKeysDeeply(); void save(Path path); void save(File file);  }### Answer:
@Test public void testConfig() { Config config = new Config(); config.set("root.parent.child", "Hello Config"); config.set("root.parent.number", 1); config.set("root.parent.boolean", true); config.set("root.parent.bigInteger", new BigInteger("10000000000000000000000000000000000000000000000000")); assertEquals(config.getString("root.parent.child"), "Hello Config"); assertEquals(config.getInt("root.parent.number"), 1); assertEquals(config.getString("root.parent.number"), "1"); assertTrue(config.getBoolean("root.parent.boolean")); assertEquals(config.getBigInteger("root.parent.bigInteger"), new BigInteger("10000000000000000000000000000000000000000000000000")); assertTrue(config.has("root.parent")); assertNotNull(config.getMap("root.parent")); assertNotNull(config.getConfig("root.parent")); Config child = config.getConfig("root.parent"); assertEquals(child.getString("child"), "Hello Config"); }