private boolean areMetricsEqual(final File expectedBase, final File actualBase, final String extension) { return MetricsFile.areMetricsEqual(new File(expectedBase + extension), new File(actualBase + extension)); }
/** Checks that the headers, metrics and histogram are all equal. */ @Override public boolean equals(final Object o) { if (o == null) { return false; } if (getClass() != o.getClass()) { return false; } final MetricsFile that = (MetricsFile) o; if (!areHeadersEqual(that)) { return false; } if (!areMetricsEqual(that)) { return false; } if (!areHistogramsEqual(that)) { return false; } return true; }
/** Checks that the headers, metrics and histogram are all equal. */ @Override public boolean equals(final Object o) { if (o == null) { return false; } if (getClass() != o.getClass()) { return false; } final MetricsFile that = (MetricsFile) o; if (!areHeadersEqual(that)) { return false; } if (!areMetricsEqual(that)) { return false; } if (!areHistogramsEqual(that)) { return false; } return true; }
/** Checks that the headers, metrics and histogram are all equal. */ @Override public boolean equals(final Object o) { if (o == null) { return false; } if (getClass() != o.getClass()) { return false; } final MetricsFile that = (MetricsFile) o; if (!areHeadersEqual(that)) { return false; } if (!areMetricsEqual(that)) { return false; } if (!areHistogramsEqual(that)) { return false; } return true; }
@Override protected int doWork() { IOUtil.assertFilesAreReadable(metricsFiles); final MetricsFile<?, ?> metricsA = new MetricsFile(); final MetricsFile<?, ?> metricsB = new MetricsFile(); try { metricsA.read(new FileReader(metricsFiles.get(0))); metricsB.read(new FileReader(metricsFiles.get(1))); final boolean areEqual = metricsA.areMetricsEqual(metricsB) && metricsA.areHistogramsEqual(metricsB); final String status = areEqual ? "EQUAL" : "NOT EQUAL"; log.info("Files " + metricsFiles.get(0) + " and " + metricsFiles.get(1) + "are " + status); } catch (final Exception e) { throw new PicardException(e.getMessage()); } return 0; }
/** * Compare the metrics in two files, ignoring headers and histograms. */ public static boolean areMetricsEqual(final File file1, final File file2) { try { final MetricsFile<MetricBase, ?> mf1 = new MetricsFile<>(); final MetricsFile<MetricBase, ?> mf2 = new MetricsFile<>(); mf1.read(new FileReader(file1)); mf2.read(new FileReader(file2)); return mf1.areMetricsEqual(mf2); } catch (FileNotFoundException e) { throw new SAMException(e.getMessage(), e); } }
/** * Compare the metrics in two files, ignoring headers and histograms. */ public static boolean areMetricsEqual(final File file1, final File file2) { try { final MetricsFile<MetricBase, ?> mf1 = new MetricsFile<>(); final MetricsFile<MetricBase, ?> mf2 = new MetricsFile<>(); mf1.read(new FileReader(file1)); mf2.read(new FileReader(file2)); return mf1.areMetricsEqual(mf2); } catch (FileNotFoundException e) { throw new SAMException(e.getMessage(), e); } }
@Test public void testBaseOutput() { String[] args = new String[]{ "I=" + TEST_INPUT_VCF1, "O=" + TEST_OUTPUT, "G=" + TEST_GENOTYPES_VCF1, "H=" + SUBSETTED_HAPLOTYPE_DATABASE_FOR_TESTING }; Assert.assertEquals(runPicardCommandLine(args), 0); Assert.assertTrue(MetricsFile.areMetricsEqual(new File(TEST_OUTPUT + ".fingerprinting_summary_metrics"), RESULT_EXAMPLE_SUMMARY)); Assert.assertTrue(MetricsFile.areMetricsEqual(new File(TEST_OUTPUT + ".fingerprinting_detail_metrics"), RESULT_EXAMPLE_DETAIL)); }
@Test public void testSummaryAndDetailOutputs() { String[] args = new String[]{ "I=" + TEST_INPUT_VCF1, "S=" + TEST_DATA_DIR + "/tempCheckFPDir/summary", "D=" + TEST_DATA_DIR + "/tempCheckFPDir/detail", "G=" + TEST_GENOTYPES_VCF1, "H=" + SUBSETTED_HAPLOTYPE_DATABASE_FOR_TESTING }; Assert.assertEquals(runPicardCommandLine(args), 0); Assert.assertTrue(MetricsFile.areMetricsEqual(new File(TEST_DATA_DIR + "/tempCheckFPDir/summary"), RESULT_EXAMPLE_SUMMARY)); Assert.assertTrue(MetricsFile.areMetricsEqual(new File(TEST_DATA_DIR + "/tempCheckFPDir/detail"), RESULT_EXAMPLE_DETAIL)); }
@Test public void areMetricsFilesEqualTest(){ final File TEST_DIR = new File("src/test/resources/htsjdk/samtools/metrics/"); final File file1 = new File(TEST_DIR,"metricsOne.metrics"); final File file2 = new File(TEST_DIR,"metricsOneCopy.metrics"); final File fileModifiedHist = new File(TEST_DIR,"metricsOneModifiedHistogram.metrics"); final File fileModifiedMet = new File(TEST_DIR,"metricsOneModifiedMetrics.metrics"); Assert.assertTrue(MetricsFile.areMetricsEqual(file1, file2)); Assert.assertTrue(MetricsFile.areMetricsEqual(file1, fileModifiedHist)); Assert.assertFalse(MetricsFile.areMetricsAndHistogramsEqual(file1, fileModifiedHist)); Assert.assertFalse(MetricsFile.areMetricsEqual(file1, fileModifiedMet)); Assert.assertFalse(MetricsFile.areMetricsAndHistogramsEqual(file1, fileModifiedMet)); }
@Override protected int doWork() { IOUtil.assertFilesAreReadable(metricsFiles); final MetricsFile<?, ?> metricsA = new MetricsFile(); final MetricsFile<?, ?> metricsB = new MetricsFile(); try { metricsA.read(new FileReader(metricsFiles.get(0))); metricsB.read(new FileReader(metricsFiles.get(1))); final boolean areEqual = metricsA.areMetricsEqual(metricsB) && metricsA.areHistogramsEqual(metricsB); final String status = areEqual ? "EQUAL" : "NOT EQUAL"; log.info("Files " + metricsFiles.get(0) + " and " + metricsFiles.get(1) + "are " + status); } catch (final Exception e) { throw new PicardException(e.getMessage()); } return 0; }
/** * Compare the metrics and histograms in two files, ignoring headers. */ public static boolean areMetricsAndHistogramsEqual(final File file1, final File file2) { try { final MetricsFile<MetricBase, ?> mf1 = new MetricsFile<>(); final MetricsFile<MetricBase, ?> mf2 = new MetricsFile<>(); mf1.read(new FileReader(file1)); mf2.read(new FileReader(file2)); return mf1.areMetricsEqual(mf2) && mf1.areHistogramsEqual(mf2); } catch (FileNotFoundException e) { throw new SAMException(e.getMessage(), e); } } }
/** * Compare the metrics and histograms in two files, ignoring headers. */ public static boolean areMetricsAndHistogramsEqual(final File file1, final File file2) { try { final MetricsFile<MetricBase, ?> mf1 = new MetricsFile<>(); final MetricsFile<MetricBase, ?> mf2 = new MetricsFile<>(); mf1.read(new FileReader(file1)); mf2.read(new FileReader(file2)); return mf1.areMetricsEqual(mf2) && mf1.areHistogramsEqual(mf2); } catch (FileNotFoundException e) { throw new SAMException(e.getMessage(), e); } } }
private void assertMetricsFileEqual(final File actualMetricsFile, final File expectedMetricsFile) throws FileNotFoundException { // Actual metrics file final MetricsFile<GenotypeConcordanceSummaryMetrics, Comparable<?>> actual = new MetricsFile<GenotypeConcordanceSummaryMetrics, Comparable<?>>(); actual.read(new FileReader(actualMetricsFile)); // Expected metrics file final MetricsFile<GenotypeConcordanceSummaryMetrics, Comparable<?>> expected = new MetricsFile<GenotypeConcordanceSummaryMetrics, Comparable<?>>(); expected.read(new FileReader(expectedMetricsFile)); // Note - cannot use .equals as it calls .areHeadersEqual and they are not since the timestamp (at a minimum is different) Assert.assertTrue(expected.areMetricsEqual(actual)); Assert.assertTrue(expected.areHistogramsEqual(actual)); }