public void test_11() throws IOException {
		String vcfFileName = "tests/test.chr1.vcf";

		Random random = new Random(20130217);

		// Index file
		System.out.println("Indexing file '" + vcfFileName + "'");
		FileIndexChrPos idx = new FileIndexChrPos(vcfFileName);
		idx.setVerbose(verbose);
		idx.setDebug(debug);
		idx.open();
		idx.index();

		// Iterate over vcf file
		VcfFileIterator vcf = new VcfFileIterator(vcfFileName);
		int chrPosPrev = 0;
		for (VcfEntry ve : vcf) {
			int chrPos = ve.getStart();
			if (chrPosPrev == 0) chrPosPrev = chrPos - 100;

			// Only perform some tests otherwise it's too long
			if (random.nextInt(1000) < 2) {
				System.out.println("\tFind: " + chrPosPrev + " - " + chrPos);

				// Find all positions from previous to current
				int step = Math.max((chrPos - chrPosPrev) / 10, 1);
				for (int cp = chrPosPrev; cp <= chrPos; cp += step) {
					// Find chr:pos
					long pos = idx.find("1", cp, false);
					LineAndPos lp = idx.getLine(pos);
					int chrPosLp = idx.pos(lp.line);
					if (debug) Gpr.debug("Find: " + cp + "\t" + lp.line);
					Assert.assertEquals(chrPos, chrPosLp); // We expect to find the next coordinate in VCF file (zero-based)
				}
			}

			chrPosPrev = chrPos + 1;
		}

		idx.close();
	}