### Question:
Export implements Iterable<Row<Measurement>>, Iterator<Row<Measurement>> { Export(Set<String> exports, Iterator<Row<Measurement>> input) { m_exports = checkNotNull(exports, "exports argument"); m_input = checkNotNull(input, "input argument"); m_current = m_input.hasNext() ? m_input.next() : null; } Export(Set<String> exports, Iterator<Row<Measurement>> input); @Override boolean hasNext(); @Override Row<Measurement> next(); @Override void remove(); @Override Iterator<Row<Measurement>> iterator();  }### Answer:
@Test public void test() { Iterator<Row<Measurement>> testData = new MeasurementRowsBuilder(new Resource("localhost")) .row( 1).element("m0", 1).element("m1", 2).element("m2", 3) .row(300).element("m0", 1).element("m1", 2).element("m2", 3) .row(600).element("m0", 1).element("m1", 2).element("m2", 3) .build(); ResultDescriptor rDescriptor = new ResultDescriptor().datasource("m1", null).export("m1"); Iterator<Row<Measurement>> expected = new MeasurementRowsBuilder(new Resource("localhost")) .row( 1).element("m1", 2) .row(300).element("m1", 2) .row(600).element("m1", 2) .build(); assertRowsEqual(expected, new Export(rDescriptor.getExports(), testData)); }