package no.priv.garshol.duke.comparators;
import org.junit.Before;
import org.junit.Test;
import static junit.framework.Assert.assertEquals;
public class NumericComparatorTest {
private NumericComparator comp;
@Before
public void setUp() {
comp = new NumericComparator();
}
@Test
public void testEqual() {
assertEquals(1.0, comp.compare("42", "42"));
}
@Test
public void testEqual2() {
assertEquals(1.0, comp.compare("42.0", "42.0"));
}
@Test
public void testHalf() {
assertEquals(0.5, comp.compare("21.0", "42.0"));
}
@Test
public void testHalfInverted() {
assertEquals(0.5, comp.compare("42.0", "21.0"));
}
@Test
public void testHalfBelowMin() {
comp.setMinRatio(0.75);
assertEquals(0.0, comp.compare("21.0", "42.0"));
}
@Test
public void testHalfAboveMin() {
comp.setMinRatio(0.25);
assertEquals(0.5, comp.compare("21.0", "42.0"));
}
@Test
public void testZero() {
assertEquals(1.0, comp.compare("0.0", "0.0"));
}
@Test
public void testFirstIsZero() {
assertEquals(0.0, comp.compare("0.0", "42.0"));
}
@Test
public void testSecondIsZero() {
assertEquals(0.0, comp.compare("42.0", "0.0"));
}
@Test
public void testOneNegativeOnePositive() {
assertEquals(0.0, comp.compare("-1", "2"));
}
@Test
public void testNegativeNumbers() {
assertEquals(0.5, comp.compare("-1", "-2"));
assertEquals(0.5, comp.compare("-2", "-1"));
}
}