public static void main(String[] args) { Rational r = new Rational(2, 3); // Stores the rational number 2/3 Rational s = new Rational(1, 2); // Stores the rational number 1/2 Rational t = new Rational(4, 18); // Stores the rational number 4/18 Rational v = new Rational(4, 8); Object a = 42; Object b = "hi"; r.add(s); // Adds r to s, changes r to 7/6. s remains 1/2 t.reduce(); // Changes t to 2/9 System.out.println(r + "\tshould be 7/6"); System.out.println(s + "\tshould be 1/2"); System.out.println(t + "\tshould be 2/9"); System.out.println(r.compareTo(s) + "\tshould be 1"); System.out.println(s.compareTo(r) + "\tshould be -1"); System.out.println(s.compareTo(s) + "\t should be 0"); System.out.println(s.compareTo(v) + "\t should be 0"); System.out.println(s.equals(a) + "\tshould be false"); System.out.println(s.equals(b) + "\tshould be false"); System.out.println(s.equals(r) + "\tshould be false"); System.out.println(s.equals(s) + "\tshould be true"); System.out.println(s.equals(v) + "\tshould be true"); }
/** * Return the next downbeat (beat 1) after the given point * * @param r * @return */ public Rational nextDownBeat(Rational r) { Rational meterEstablishedAt = _data.floorKey(r); TimeSignature ts = _data.get(meterEstablishedAt); Rational result = meterEstablishedAt; Rational inc = Rational.get(ts.TOP); while (result.compareTo(r) <= 0) { result = result.plus(inc); } // Look ahead - if a new Time Signature overrode our // old time signature before it completed a measure // we need to compensate for that. Rational higher = _data.higherKey(r); if (higher != null && result.compareTo(higher) > 0) result = higher; return result; }
public static void main(String[] args) { Rational d, e, f; d = new Rational(1, 2); e = new Rational(2, 3); f = new Rational(2, 4); // System.out.println(d.getA()); System.out.println(d.ratNum()); System.out.println(d.equals(e)); System.out.println(d.equals(f)); System.out.println((d.mult(f)).ratNum()); System.out.println(d.compareTo(e)); }
public static void main(String[] args) { Rational r = new Rational(); Rational s = new Rational(8, 18); Rational t = new Rational(4, 6); Rational v = new Rational(7, 21); Rational w = new Rational(7, 21); /* System.out.println("~~--------------------------------~~"); System.out.println("Testing toString(): \n"); System.out.println(); System.out.println("Rational r:"); System.out.println(r); System.out.println("Rational s:"); System.out.println(s); System.out.println("Rational t:"); System.out.println(t); System.out.println("Rational v:"); System.out.println(v); System.out.println("~~--------------------------------~~"); System.out.println("Testing multiply(): "); System.out.println(); System.out.println("s * v"); System.out.println(); System.out.println("BEFORE:"); System.out.println("Rational s:"); System.out.println(s); System.out.println("Rational v:"); System.out.println(v); s.multiply(v); System.out.println("AFTER:"); System.out.println("Rational s:"); System.out.println(s); System.out.println("Rational v:"); System.out.println(v); System.out.println("~~--------------------------------~~"); System.out.println("Testing divide(): "); System.out.println(); System.out.println("v / s"); System.out.println(); System.out.println("BEFORE:"); System.out.println("Rational s:"); System.out.println(s); System.out.println("Rational v:"); System.out.println(v); v.divide(s); System.out.println("AFTER:"); System.out.println("Rational s:"); System.out.println(s); System.out.println("Rational v:"); System.out.println(v); System.out.println("~~--------------------------------~~"); System.out.println("Testing add(): "); System.out.println(); System.out.println("r + t"); System.out.println(); System.out.println("BEFORE:"); System.out.println("Rational r:"); System.out.println(r); System.out.println("Rational t:"); System.out.println(t); r.add(t); System.out.println("AFTER:"); System.out.println("Rational r:"); System.out.println(r); System.out.println("Rational t:"); System.out.println(t); System.out.println("~~--------------------------------~~"); System.out.println("Testing subtract(): "); System.out.println(); System.out.println("t - r"); System.out.println(); System.out.println("BEFORE:"); System.out.println("Rational t:"); System.out.println(t); System.out.println("Rational r:"); System.out.println(r); t.subtract(r); System.out.println("AFTER:"); System.out.println("Rational t:"); System.out.println(t); System.out.println("Rational r:"); System.out.println(r); */ System.out.println("~~--------------------------------------------~~"); System.out.println("Testing compareTo(): "); System.out.println(); System.out.println("Rational r:"); System.out.println(r); System.out.println("Rational w:"); System.out.println(w); System.out.print("compare r and w: "); System.out.print(r.compareTo(w) + "\n\n"); // what how does compareTo function when numbers are equal? floats are weird Rational apple = new Rational(3, 9); Rational banana = new Rational(1, 3); System.out.println("Testing compareTo(): "); System.out.println(); System.out.println("Rational apple:"); System.out.println(apple); System.out.println("Rational banana:"); System.out.println(banana); System.out.println("compare apple and banana: "); System.out.println(apple.compareTo(banana) + "\n\n"); System.out.println("Rational v:"); System.out.println(v); System.out.println("Rational w:"); System.out.println(w); System.out.print("compare v and w: "); System.out.print(v.compareTo(w) + "\n\n"); System.out.println("Rational t:"); System.out.println(t); System.out.println("Rational s:"); System.out.println(s); System.out.print("compare t and s: "); System.out.print(t.compareTo(s) + "\n\n"); System.out.println("~~--------------Testing equals()------------------~~"); Object a = new Rational(1, 7); Object b = new Rational(2, 14); Object c = new Rational(3, 14); Object d = new Rational(1, 7); System.out.println(a.equals(b)); System.out.println(a.equals(c)); System.out.println(a.equals(d)); System.out.println(b.equals(c)); System.out.println("~~--------------------------------~~"); }
public static void main(String[] args) { Rational r1 = new Rational(1, 5); // rational number 1/5 Rational r2 = new Rational(1, 2); // rational number 1/2 r1.multiply(r2); // Multiplies r1 by r2, changes r1 to 1/10 (0.1) System.out.println(r1); System.out.println(r1.denominator); // 10 System.out.println(r1.numerator); // 1 System.out.println(); r2.divide(r1); // Divides r2 by r1, changes r2 to 5/1 (5.0) System.out.println(r2); System.out.println(r2.denominator); // 2 System.out.println(r2.numerator); // 10 System.out.println(); System.out.println(r2.gcd()); // 2 System.out.println(); r2.reduce(); System.out.println(r2.denominator); // 1 System.out.println(r2.numerator); // 5 System.out.println(); System.out.println(r1.compareTo(r2)); // -1 System.out.println(r2.compareTo(r1)); // 1 System.out.println(); System.out.println(gcd(32, 12)); // 4 System.out.println(); r1.add(r2); System.out.println(r1); // 5.1 System.out.println(); r2.subtract(r1); System.out.println(r2); // -0.1 System.out.println(); System.out.println(r1.compareTo(r2)); // 1 System.out.println(r2.compareTo(r1)); // -1 Rational r3 = new Rational(3, 4); Rational r4 = new Rational(4, 5); System.out.println(); System.out.println(r3.compareTo(r4)); // -1 System.out.println(r4.compareTo(r3)); // 1 Rational r5 = new Rational(33333333, 100000000); Rational r6 = new Rational(1, 3); System.out.println(); System.out.println(r5); // 0.33333333 System.out.println(r6); // 1/3 System.out.println(r5.compareTo(r6)); // 1 System.out.println(r6.compareTo(r5)); // -1 System.out.println("-------------"); System.out.println("-- .equals --"); System.out.println(r3.equals(r4)); // false Rational re0 = new Rational(0, 10); Rational re1 = new Rational(0, 3); System.out.println(re0.equals(re1)); // true System.out.println(re1.equals(re0)); // true Rational re2 = new Rational(2, 4); Rational re3 = new Rational(12, 24); Rational re4 = new Rational(-12, -24); System.out.println(re2.equals(re3)); // true System.out.println(re4.equals(re2)); // true Rational re5 = new Rational(3, 7); Rational re6 = new Rational(3, -7); Rational re7 = new Rational(-3, 7); System.out.println(re5.equals(re6)); // false System.out.println(re7.equals(re5)); // false System.out.println(re6.equals(re7)); // true }