diff --git a/src/main/java/net/sf/jabref/bibtex/DuplicateCheck.java b/src/main/java/net/sf/jabref/bibtex/DuplicateCheck.java index b5f18074ad9..18e708762d0 100644 --- a/src/main/java/net/sf/jabref/bibtex/DuplicateCheck.java +++ b/src/main/java/net/sf/jabref/bibtex/DuplicateCheck.java @@ -30,6 +30,8 @@ */ public class DuplicateCheck { + private static final Log LOGGER = LogFactory.getLog(DuplicateCheck.class); + /* * Integer values for indicating result of duplicate check (for entries): * @@ -50,8 +52,6 @@ public class DuplicateCheck { // Extra weighting of those fields that are most likely to provide correct duplicate detection: private static final HashMap fieldWeights = new HashMap<>(); - private static final Log LOGGER = LogFactory.getLog(DuplicateCheck.class); - static { DuplicateCheck.fieldWeights.put("author", 2.5); diff --git a/src/test/java/net/sf/jabref/bibtex/DuplicateCheckTest.java b/src/test/java/net/sf/jabref/bibtex/DuplicateCheckTest.java index d245874016a..b2cea13acaf 100644 --- a/src/test/java/net/sf/jabref/bibtex/DuplicateCheckTest.java +++ b/src/test/java/net/sf/jabref/bibtex/DuplicateCheckTest.java @@ -48,18 +48,36 @@ public void testDuplicateDetection() { one.setField("title", "A title"); two.setField("title", "A title"); one.setField("journal", "A"); + two.setField("journal", "A"); + Assert.assertTrue(DuplicateCheck.isDuplicate(one, two)); + Assert.assertEquals(1.01, DuplicateCheck.compareEntriesStrictly(one, two), 0.01); + + two.setField("journal", "B"); + Assert.assertTrue(DuplicateCheck.isDuplicate(one, two)); + Assert.assertEquals(0.75, DuplicateCheck.compareEntriesStrictly(one, two), 0.01); + two.setField("journal", "A"); one.setField("number", "1"); + two.setField("volume", "21"); + one.setField("pages", "334--337"); + two.setField("pages", "334--337"); + Assert.assertTrue(DuplicateCheck.isDuplicate(one, two)); + two.setField("number", "1"); one.setField("volume", "21"); - two.setField("volume", "21"); Assert.assertTrue(DuplicateCheck.isDuplicate(one, two)); two.setField("volume", "22"); Assert.assertTrue(DuplicateCheck.isDuplicate(one, two)); - two.setField("title", "Another title"); two.setField("journal", "B"); + Assert.assertTrue(DuplicateCheck.isDuplicate(one, two)); + + one.setField("journal", ""); + two.setField("journal", ""); + Assert.assertTrue(DuplicateCheck.isDuplicate(one, two)); + + two.setField("title", "Another title"); Assert.assertFalse(DuplicateCheck.isDuplicate(one, two)); }