# Assignment #1: Simple Classes

Implement a very minimal BigRational class. A BigRational stores a numerator and a denominator. For the purposes of this assignment, you may assume that there are no negative numbers, no zero denominators, etc. For this assignment you need to only implement the following methods:
• A reasonable set of constructors suitable to implement the sample program below.
• equals
• toString
The internal data representation consists of two java.math.BigInteger objects representing the numerator and denominator, respectively. The rational number is always kept in reduced form.

## Sample test program

```class Assign1
{
public static void main( String [ ] args )
{
BigRational r1 = new BigRational( "123456789023466" );         // Denominator is 1
BigRational r2 = new BigRational( "1234567890234660", "10" );
BigRational r3 = new BigRational( "3", "4" );
BigRational r4 = new BigRational( "2", "3" );
BigRational r5 = r3.add( r4 );                                 // 17/12
BigRational r6 = new BigRational( "10", "120" );               // 1/12

System.out.println( r1.equals( r2 ) );   // Should be true!
System.out.println( r5.add( r6 ) );      // 3/2
System.out.println( r5 );                // 17/12
}
}
```

## BigRational Sketch

Here is a sketch of BigRational.
```import java.math.BigInteger;

public class BigRational
{
/*
* Constructor, assumes no funny stuff, so no error checks.
* Reduces to lowest form by dividing numerator
* and denominator  by their gcd.
*/
public BigRational( String n, String d )
{
numerator = new BigInteger( n );
denominator = new BigInteger( d );
reduce( );
}

private void reduce( )
{
BigInteger gcd = numerator.gcd( denominator );
numerator = numerator.divide( gcd );
denominator = denominator.divide( gcd );
}

/*
* Returns a new BigRational representing this+other
* Make sure to reduce
*/
public BigRational add( BigRational other )
{
}

public String toString( )
{
}

public boolean equals( Object other )
{
}

private BigInteger numerator;
private BigInteger denominator;
}
```