package edu.cmu.minorthird.classify.experiments; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import edu.cmu.minorthird.classify.Splitter; /** * Provides exactly one 'split', between the entire set given, and a fixed * designated test set. * * @author William Cohen */ public class FixedTestSetSplitter<T> implements Splitter<T>{ private List<T> testList,trainList; public FixedTestSetSplitter(Iterator<T> testIterator){ testList=iteratorToList(testIterator); } @Override public void split(Iterator<T> i){ trainList=iteratorToList(i); } @Override public int getNumPartitions(){ return 1; } @Override public Iterator<T> getTrain(int k){ return trainList.iterator(); } @Override public Iterator<T> getTest(int k){ return testList.iterator(); } private List<T> iteratorToList(Iterator<T> i){ List<T> result=new ArrayList<T>(); while(i.hasNext()){ result.add(i.next()); } return result; } }