// KomiTest.java
package net.sf.gogui.go;
public final class KomiTest
extends junit.framework.TestCase
{
public static void main(String args[])
{
junit.textui.TestRunner.run(suite());
}
public static junit.framework.Test suite()
{
return new junit.framework.TestSuite(KomiTest.class);
}
public void testEquals() throws InvalidKomiException
{
assertTrue((new Komi(0)).equals(new Komi(0)));
assertTrue((new Komi(6.5)).equals(new Komi(6.5)));
assertFalse((new Komi(0)).equals(new Komi(6.5)));
assertFalse((new Komi(6.5)).equals(new Komi(6)));
assertFalse((new Komi(6.5)).equals(new Komi(5.5)));
assertFalse((new Komi(6.5)).equals(null));
}
public void testHashCode() throws InvalidKomiException
{
assertEquals((new Komi(6.5)).hashCode(), (new Komi(6.5)).hashCode());
assertEquals((new Komi(1)).hashCode(), (new Komi(1)).hashCode());
assertFalse((new Komi(6.5)).hashCode() == (new Komi(0)).hashCode());
assertFalse((new Komi(6.5)).hashCode() == (new Komi(6)).hashCode());
}
public void testParseKomi() throws InvalidKomiException
{
assertEquals(new Komi(5.5), Komi.parseKomi("5.5"));
assertEquals(new Komi(5.5), Komi.parseKomi("5,5"));
assertEquals(new Komi(0), Komi.parseKomi("0"));
assertNull(Komi.parseKomi(""));
}
public void testParseKomiInvalidNotANumber()
{
try
{
Komi.parseKomi("foo");
}
catch (InvalidKomiException e)
{
return;
}
fail();
}
public void testParseKomiInvalidTwoNumbers()
{
try
{
Komi.parseKomi("5.5 6.5");
}
catch (InvalidKomiException e)
{
return;
}
fail();
}
public void testToDouble() throws InvalidKomiException
{
double delta = 1e-10;
assertEquals(-0.5, (new Komi(-0.5)).toDouble(), delta);
assertEquals(-2, (new Komi(-2)).toDouble(), delta);
assertEquals(0, (new Komi(0)).toDouble(), delta);
assertEquals(5, (new Komi(5)).toDouble(), delta);
assertEquals(0.5, (new Komi(0.5)).toDouble(), delta);
assertEquals(5.5, (new Komi(5.5)).toDouble(), delta);
assertEquals(5.75, (new Komi(5.75)).toDouble(), delta);
}
public void testToString() throws InvalidKomiException
{
assertEquals("-5", (new Komi(-5)).toString());
assertEquals("-5.5", (new Komi(-5.5)).toString());
assertEquals("-1", (new Komi(-1)).toString());
assertEquals("-0.5", (new Komi(-0.5)).toString());
assertEquals("0", (new Komi(0)).toString());
assertEquals("5", (new Komi(5)).toString());
assertEquals("0.5", (new Komi(0.5)).toString());
assertEquals("6.5", (new Komi(6.5)).toString());
assertEquals("6.25", (new Komi(6.25)).toString());
}
}