package hw01;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class TestFraction {

	@Test
	void testNegNumDenom() { 
		Fraction negNumDenom = new Fraction(0,-13,-3);
		assertEquals("4 1/3",negNumDenom.toString(),"Normalized -12/-3 is 4 1/3");
	}
	
	@Test
	void testMixed() { 
		Fraction negWholePosFrac = new Fraction(-2,1,3);
		assertEquals("-1 2/3",negWholePosFrac.toString(),"Normalized -2 +1/3 is -1 2/3");
	}
	
	@Test
	void testZeroDenom() {
		// The following should fail an assertion
		// Exception check = assertThrows(RuntimeException.class, 
		//		() -> new Fraction(3,12,0)
		// );
		Fraction zeroDenom=null;
		try {
			// System.out.println("Starting try");
			zeroDenom = new Fraction(3,12,0);
			System.out.println("zeroDenom = " + zeroDenom.toString());
		} catch(Throwable e) {
			System.out.println("Excpected Error thrown: " + e );
		}
		// System.out.println("Try/catch complete.");
		assertNull(zeroDenom,"A zero denominator should cause an error");
	}

}
