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");
  }
示例#2
0
  /**
   * 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;
  }
示例#3
0
 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));
 }
示例#4
0
  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("~~--------------------------------~~");
  }
示例#5
0
  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
  }