package org.jabref.logic.formatter.bibtexfields;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
/**
* Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest}
*/
public class NormalizePagesFormatterTest {
private NormalizePagesFormatter formatter;
@Before
public void setUp() {
formatter = new NormalizePagesFormatter();
}
@Test
public void formatSinglePageResultsInNoChange() {
Assert.assertEquals("1", formatter.format("1"));
}
@Test
public void formatPageNumbers() {
Assert.assertEquals("1--2", formatter.format("1-2"));
}
@Test
public void formatPageNumbersCommaSeparated() {
Assert.assertEquals("1,2,3", formatter.format("1,2,3"));
}
@Test
public void formatPageNumbersPlusRange() {
Assert.assertEquals("43+", formatter.format("43+"));
}
@Test
public void ignoreWhitespaceInPageNumbers() {
Assert.assertEquals("1--2", formatter.format(" 1 - 2 "));
}
@Test
public void removeWhitespaceSinglePage() {
Assert.assertEquals("1", formatter.format(" 1 "));
}
@Test
public void removeWhitespacePageRange() {
Assert.assertEquals("1--2", formatter.format(" 1 -- 2 "));
}
@Test
public void ignoreWhitespaceInPageNumbersWithDoubleDash() {
Assert.assertEquals("43--103", formatter.format("43 -- 103"));
}
@Test
public void keepCorrectlyFormattedPageNumbers() {
Assert.assertEquals("1--2", formatter.format("1--2"));
}
@Test
public void formatPageNumbersRemoveUnexpectedLiterals() {
Assert.assertEquals("1--2", formatter.format("{1}-{2}"));
}
@Test
public void formatPageNumbersRegexNotMatching() {
Assert.assertEquals("12", formatter.format("12"));
}
@Test
public void doNotRemoveLetters() {
Assert.assertEquals("R1-R50", formatter.format("R1-R50"));
}
@Test
public void replaceLongDashWithDoubleDash() {
Assert.assertEquals("1--50", formatter.format("1 \u2014 50"));
}
@Test
public void removePagePrefix() {
Assert.assertEquals("50", formatter.format("p.50"));
}
@Test
public void removePagesPrefix() {
Assert.assertEquals("50", formatter.format("pp.50"));
}
@Test
public void formatACMPages() {
// This appears in https://doi.org/10.1145/1658373.1658375
Assert.assertEquals("2:1--2:33", formatter.format("2:1-2:33"));
}
@Test
public void keepFormattedACMPages() {
// This appears in https://doi.org/10.1145/1658373.1658375
Assert.assertEquals("2:1--2:33", formatter.format("2:1--2:33"));
}
@Test
public void formatExample() {
Assert.assertEquals("1--2", formatter.format(formatter.getExampleInput()));
}
}