### Question:
Columns implements Iterable<Column> { public Columns exclude(Columns toexclude) { List<Column> remaining = new ArrayList<Column>(columns.length); for (Column each : columns) { if (toexclude.contains(each)) continue; remaining.add(each); } return new Columns(remaining.toArray(new Column[]{ })); } Columns(Column... columns);  Columns(Collection<Column> columns); boolean contains(Column column); boolean contains(Columns columns); Iterator<Column> iterator(); int count(); String namesJoint(String separator); String namesJoint(String template, String separator); Columns exclude(Columns toexclude); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }### Answer:
@Test public void exclude_returnsName() { Columns all = new Columns(NAME, BIRTH_DATE); assertEquals(new Columns(NAME), all.exclude(new Columns(BIRTH_DATE))); }