package com.github.pfichtner.jrunalyser.base.comparator;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import com.github.pfichtner.jrunalyser.base.comparator.RelDiffNumberComparator;
public class RelDiffNumberComparatorTest {
private static final Integer zero = Integer.valueOf(0);
private static final Integer p100 = Integer.valueOf(100);
private static final Integer n100 = Integer.valueOf(-100);
private static final Integer p90 = Integer.valueOf(90);
private static final Integer n90 = Integer.valueOf(-90);
private static final Integer p89 = Integer.valueOf(89);
private static final Integer n89 = Integer.valueOf(-89);
private static final Integer maxVal = Integer.valueOf(Integer.MAX_VALUE);
private static final Integer minVal = Integer.valueOf(Integer.MIN_VALUE);
// values can differ up to 10 percent (relative)
private final RelDiffNumberComparator comparator = new RelDiffNumberComparator(
10);
@Test
public void testCompare_resultMustBeZero() {
assertEquals(0, this.comparator.compare(zero, zero));
assertEquals(0, this.comparator.compare(p100, p90));
assertEquals(0, this.comparator.compare(p90, p100));
assertEquals(0, this.comparator.compare(n100, n90));
assertEquals(0, this.comparator.compare(n90, n100));
assertEquals(0, this.comparator.compare(p89, p90));
assertEquals(0, this.comparator.compare(p90, p89));
assertEquals(0, this.comparator.compare(n89, n90));
assertEquals(0, this.comparator.compare(n90, n89));
}
@Test
public void testCompare_resultMustBeNonZero() {
assertTrue(this.comparator.compare(p100, zero) > 0);
assertTrue(this.comparator.compare(zero, p100) < 0);
assertTrue(this.comparator.compare(p89, zero) > 0);
assertTrue(this.comparator.compare(zero, p89) < 0);
assertTrue(this.comparator.compare(p100, p89) > 0);
assertTrue(this.comparator.compare(n89, p100) < 0);
}
}