### Question:
Optionality { public static DataType unoptionalize(DataType dt) { Ensure.not_null(dt); if (is_optional(dt)) { return ((OptionalDataType) dt).inner_type(); } return dt; } private  Optionality(); static boolean is_optional(DataType dt); static boolean is_optional(DataValue dv); static DataType unoptionalize(DataType dt); static DataType deep_unoptionalize(DataType dt); static DataValue unoptionalize(DataValue dv); static DataValue deep_unoptionalize(DataValue dv); static DataValue optionalize(DataValue v, DataType dt); static boolean is_optional_of(DataType opt, DataType inner); static boolean is_deep_optional_of(DataType opt, DataType inner);  }### Answer:
@Test public void unoptionalize_optional_data_type() throws Exception { assertEquals(m_dt, Optionality.unoptionalize(m_odt)); }
@Test public void unoptionalize_non_optional_data_type() throws Exception { assertEquals(m_dt, Optionality.unoptionalize(m_dt)); }
@Test public void unoptionalize_deep_optional_data_type() throws Exception { assertEquals(m_odt, Optionality.unoptionalize(m_oodt)); }
@Test public void unoptionalize_non_null_optional_data_value() throws Exception { assertEquals(m_dv, Optionality.unoptionalize(m_odv)); }
@Test public void unoptionalize_non_optional_data_value() throws Exception { assertEquals(m_dv, Optionality.unoptionalize(m_dv)); }
@Test public void unoptionalize_non_null_deep_optional_data_value() throws Exception { assertEquals(m_odv, Optionality.unoptionalize(m_oodv)); assertEquals(m_odvn, Optionality.unoptionalize(m_oodvin)); }
@Test public void unoptionalize_null_optional_data_value() throws Exception { assertNull(Optionality.unoptionalize(m_odvn)); }
@Test public void unoptionalize_null_deep_optional_data_value() throws Exception { assertNull(Optionality.unoptionalize(m_oodvn)); }