### Question:
DataSubset extends AbstractDataset implements Dataset { @Override public Values values () { return new ValuesSubset (parent.values (), columns.keys (), rows.keys (), false); } @SneakyThrows(value = {InvalidDimensionTypeException.class})  DataSubset(String name, Dataset parent, List<String> columns, List<String> rows); @SneakyThrows({InvalidDimensionTypeException.class})  DataSubset(Dataset parent, List<String> columns, List<String> rows); @Override Values values(); @Override Dimension dimension(Type type); @Override void set(Dimension dimension); @Override Analyses analyses(); @Override void exportSelection(String name,
                               Type dimension,
                               String selection,
                               Workspace workspace,
                               DatasetBuilder datasetBuilder); @Override void close();  }### Answer:
@Test public void testValues () throws InvalidCoordinateException { assertThat(subset.values ().get ("g2", "sb"), equalTo (2.2)); assertThat(subset.values ().get ("g2", "sc"), equalTo (2.3)); assertThat(subset.values ().get ("g3", "sb"), equalTo (3.2)); assertThat(subset.values ().get ("g3", "sc"), equalTo (3.3)); assertThat(subset.values ().skipJson (), equalTo(false)); thrown.expect (InvalidCoordinateException.class); subset.values ().get ("g1", "sa"); thrown.expect (InvalidCoordinateException.class); subset.values ().get ("g1", "sd"); thrown.expect (InvalidCoordinateException.class); subset.values ().get ("g2", "sa"); thrown.expect (InvalidCoordinateException.class); subset.values ().get ("g2", "sd"); thrown.expect (InvalidCoordinateException.class); subset.values ().get ("g3", "sa"); thrown.expect (InvalidCoordinateException.class); subset.values ().get ("g3", "sd"); thrown.expect (InvalidCoordinateException.class); subset.values ().get ("g4", "sa"); thrown.expect (InvalidCoordinateException.class); subset.values ().get ("g4", "sd"); }