### Question:
GFFParser { public FeatureRecord next() throws IOException { if (lastLine == null) return null; FeatureRecord result = recordParser.parseLine(lastLine); do { lastLine = reader.readLine(); } while (lastLine != null && lastLine.startsWith("#")); return result; } GFFParser(File file);  GFFParser(InputStream stream); FeatureRecord next(); GFFVersion getGFFVersion();  }### Answer:
@Test public void test() throws IOException { GFFParser parser = new GFFParser(stream); ArrayList<FeatureRecord> records = new ArrayList<>(); FeatureRecord record; while ((record = parser.next()) != null) records.add(record); Assert.assertEquals(12, records.size()); Assert.assertEquals( "FeatureRecord [seqID=NC_000003.11, source=BestRefSeq, type=gene, begin=129247481, end=129254187, score=., strand=FORWARD, phase=0, attributes={Dbxref=GeneID:6010,HGNC:10012,HPRD:01584,MIM:180380, ID=gene7867, Name=RHO, description=rhodopsin, gbkey=Gene, gene=RHO, gene_synonym=CSNBAD1,OPN2,RP4, part=1%2F1}]", records.get(0).toString()); Assert.assertEquals( "FeatureRecord [seqID=NC_000003.11, source=BestRefSeq, type=CDS, begin=129252450, end=129252561, score=., strand=FORWARD, phase=0, attributes={Dbxref=CCDS:CCDS3063.1,GeneID:6010,Genbank:NP_000530.1,HGNC:10012,HPRD:01584,MIM:180380, ID=cds13732, Name=NP_000530.1, Parent=rna17010, gbkey=CDS, gene=RHO, product=rhodopsin, protein_id=NP_000530.1}]", records.get(11).toString()); }