//----------------------------------------------------------------------------//
// //
// R a t i o n a l T e s t //
// //
//----------------------------------------------------------------------------//
// <editor-fold defaultstate="collapsed" desc="hdr"> //
// Copyright (C) Hervé Bitteur 2000-2011. All rights reserved. //
// This software is released under the GNU General Public License. //
// Goto http://kenai.com/projects/audiveris to report bugs or suggestions. //
//----------------------------------------------------------------------------//
// </editor-fold>
package omr.math;
import static org.junit.Assert.*;
import org.junit.Test;
/**
*
* @author Hervé Bitteur
*/
public class RationalTest
{
//~ Constructors -----------------------------------------------------------
/**
* Creates a new RationalTest object.
*/
public RationalTest ()
{
}
//~ Methods ----------------------------------------------------------------
/**
* Test of abs method, of class Rational.
*/
@Test
public void testAbs ()
{
System.out.println("abs");
Rational instance = new Rational(-2, 3);
Rational expResult = new Rational(2, 3);
Rational result = instance.abs();
assertEquals(expResult, result);
}
/**
* Test of compareTo method, of class Rational.
*/
@Test
public void testCompareTo ()
{
System.out.println("compareTo");
Rational instance = new Rational(4, 9);
Rational that = new Rational(2, 3);
int result = instance.compareTo(that);
assertEquals(-1, result);
assertEquals(0, instance.compareTo(new Rational(-8, -18)));
assertEquals(1, instance.compareTo(instance.opposite()));
instance = new Rational(3, 16);
assertEquals(-1, instance.compareTo(Rational.MAX_VALUE));
assertEquals(1, Rational.MAX_VALUE.compareTo(instance));
}
/**
* Test of divides method, of class Rational.
*/
@Test
public void testDivides_Rational ()
{
System.out.println("divides");
Rational instance = new Rational(2, 3);
Rational that = new Rational(4, 5);
Rational expResult = new Rational(10, 12);
Rational result = instance.divides(that);
assertEquals(expResult, result);
}
/**
* Test of divides method, of class Rational.
*/
@Test
public void testDivides_int ()
{
System.out.println("divides");
Rational instance = new Rational(2, 3);
int that = 2;
Rational expResult = new Rational(1, 3);
Rational result = instance.divides(that);
assertEquals(expResult, result);
}
/**
* Test of equals method, of class Rational.
*/
@Test
public void testEquals ()
{
System.out.println("equals");
Rational instance = new Rational(-4, -6);
assertEquals(true, instance.equals(new Rational(2, 3)));
assertEquals(false, instance.equals(new Rational(1, 2)));
assertEquals(false, instance.equals(Rational.ONE));
}
/**
* Test of gcd method, of class Rational.
*/
@Test
public void testGcd_RationalArr ()
{
System.out.println("gcd");
Rational[] vals = new Rational[] {
new Rational(2, 3), new Rational(1, 4),
new Rational(5, 6)
};
Rational expResult = new Rational(1, 12);
Rational result = Rational.gcd(vals);
assertEquals(expResult, result);
}
/**
* Test of gcd method, of class Rational.
*/
@Test
public void testGcd_Rational_Rational ()
{
System.out.println("gcd");
Rational a = new Rational(2, 3);
Rational b = new Rational(5, 4);
Rational expResult = new Rational(1, 12);
Rational result = Rational.gcd(a, b);
assertEquals(expResult, result);
}
/**
* Test of hashCode method, of class Rational.
*/
@Test
public void testHashCode ()
{
System.out.println("hashCode");
Rational instance = new Rational(2, 3);
int expResult = 39874;
int result = instance.hashCode();
assertEquals(expResult, result);
}
/**
* Test of minus method, of class Rational.
*/
@Test
public void testMinus_Rational ()
{
System.out.println("minus");
Rational instance = new Rational(2, 3);
Rational that = new Rational(1, 2);
Rational expResult = new Rational(1, 6);
Rational result = instance.minus(that);
assertEquals(expResult, result);
}
/**
* Test of minus method, of class Rational.
*/
@Test
public void testMinus_int ()
{
System.out.println("minus");
Rational instance = new Rational(2, 3);
int that = 1;
Rational expResult = new Rational(-1, 3);
Rational result = instance.minus(that);
assertEquals(expResult, result);
}
/**
* Test of opposite method, of class Rational.
*/
@Test
public void testNegate ()
{
System.out.println("opposite");
Rational instance = new Rational(2, 3);
Rational expResult = new Rational(-2, 3);
Rational result = instance.opposite();
assertEquals(expResult, result);
}
/**
* Test of plus method, of class Rational.
*/
@Test
public void testPlus_Rational ()
{
System.out.println("plus");
Rational instance = new Rational(2, 3);
Rational that = new Rational(1, 2);
Rational expResult = new Rational(7, 6);
Rational result = instance.plus(that);
assertEquals(expResult, result);
}
/**
* Test of plus method, of class Rational.
*/
@Test
public void testPlus_int ()
{
System.out.println("plus");
Rational instance = new Rational(2, 3);
int that = 5;
Rational expResult = new Rational(17, 3);
Rational result = instance.plus(that);
assertEquals(expResult, result);
}
/**
* Test of inverse method, of class Rational.
*/
@Test
public void testReciprocal ()
{
System.out.println("inverse");
Rational instance = new Rational(2, 3);
Rational expResult = new Rational(3, 2);
Rational result = instance.inverse();
assertEquals(expResult, result);
}
/**
* Test of times method, of class Rational.
*/
@Test
public void testTimes_Rational ()
{
System.out.println("times");
Rational instance = new Rational(2, 3);
Rational that = new Rational(4, 5);
Rational expResult = new Rational(8, 15);
Rational result = instance.times(that);
assertEquals(expResult, result);
}
/**
* Test of times method, of class Rational.
*/
@Test
public void testTimes_int ()
{
System.out.println("times");
Rational instance = new Rational(2, 3);
int that = -10;
Rational expResult = new Rational(-20, 3);
Rational result = instance.times(that);
assertEquals(expResult, result);
}
/**
* Test of toDouble method, of class Rational.
*/
@Test
public void testToDouble ()
{
System.out.println("toDouble");
Rational instance = new Rational(2, 4);
double expResult = 0.5;
double result = instance.toDouble();
assertEquals(expResult, result, 0.0);
}
/**
* Test of toString method, of class Rational.
*/
@Test
public void testToString ()
{
System.out.println("toString");
Rational instance = new Rational(2, 3);
String expResult = "2/3";
String result = instance.toString();
assertEquals(expResult, result);
instance = new Rational(2, 1);
expResult = "2";
result = instance.toString();
assertEquals(expResult, result);
instance = new Rational(2, -3);
expResult = "-2/3";
result = instance.toString();
assertEquals(expResult, result);
}
}