public static DataMap convertMapRetainingNulls(Map<String, ?> input)
  {
    return convertMap(input, true, false);
  }
@Test
  void testConvertRetainingNulls()
  {
    DataMap parent = DataComplexUtil.convertMapRetainingNulls(inputMap());

    Assert.assertNotNull(parent);
    Assert.assertEquals(parent.size(), 3);

    Assert.assertTrue(parent.containsKey("child1"));
    Assert.assertEquals(parent.get("child1"), Data.NULL);

    Assert.assertTrue(parent.containsKey("child2"));
    DataMap child2 = parent.getDataMap("child2");

    Assert.assertNotNull(child2);
    Assert.assertEquals(child2.size(), 2);

    Assert.assertTrue(child2.containsKey("gchild1"));
    Assert.assertEquals(child2.get("gchild1"), 123);

    Assert.assertTrue(child2.containsKey("gchild2"));
    Assert.assertEquals(child2.get("gchild2"), Data.NULL);

    Assert.assertTrue(parent.containsKey("child3"));
    DataList child3 = parent.getDataList("child3");

    Assert.assertNotNull(child3);
    Assert.assertEquals(child3.size(), 2);

    Assert.assertEquals(child3.get(0), "gchild3");
    Assert.assertEquals(child3.get(1), Data.NULL);
  }