def func(x, y, msg): if y == 0: pass else: frac = -Fraction(x, y) self.assertEqual(-Rational(BigInt(x), BigInt(y)), Rational(BigInt(frac.numerator), BigInt(frac.denominator)), msg=msg)
def func(a, b, c, d, msg): if b == 0 or d == 0: pass else: x = Rational(BigInt(a), BigInt(b)) fx = Fraction(a, b) y = Rational(BigInt(c), BigInt(d)) fy = Fraction(c, d) self.assertEqual(x == y, fx == fy, msg=msg)
def func(a, b, c, d, msg): if b == 0 or d == 0: pass else: x = Rational(BigInt(a), BigInt(b)) y = Rational(BigInt(c), BigInt(d)) x2, y2 = x.lcd(y) self.assertEqual(x, x2, msg=msg) self.assertEqual(y, y2, msg=msg) self.assertEqual(x2.denominator, y2.denominator, msg=msg)
def func(x, y, msg): old = Rational(BigInt(x), BigInt(y)) a = old.simplify() self.assertEqual(old.positive, a.positive) self.assertEqual(a.numerator, BigInt(Fraction(x, y).numerator), msg=msg) self.assertEqual(a.denominator, BigInt(Fraction(x, y).denominator), msg=msg)
def func(a, b, c, d, msg): if b == 0 or d == 0: pass else: x = Rational(BigInt(a), BigInt(b)) y = Rational(BigInt(c), BigInt(d)) diff = x * y f = Fraction(a, b) * Fraction(c, d) self.assertEqual(diff, Rational(BigInt(f.numerator), BigInt(f.denominator)), msg=msg)
def func(a, b, c, d, msg): if b == 0 or d != 1: pass elif a == 0 and c < 0: with self.assertRaises(ZeroDivisionError): ans = Rational(BigInt(a), BigInt(b))**BigInt(c) else: ans = Rational(BigInt(a), BigInt(b))**BigInt(c) frac = Fraction(a, b)**c fracans = Rational(BigInt(frac.numerator), BigInt(frac.denominator)) self.assertEqual(ans, fracans, msg=msg)
def func(a, b, c, d, msg): if b == 0 or d == 0: pass else: x = Rational(BigInt(a), BigInt(b)) fx = Fraction(a, b) y = Rational(BigInt(c), BigInt(d)) fy = Fraction(c, d) self.assertEqual(x < y, fx < fy, msg=msg + "|| x={0}, y={1}".format(*x.lcd(y))) self.assertEqual(x <= y, fx <= fy, msg=msg + "|| x={0}, y={1}".format(*x.lcd(y)))
def func(a, b, c, d, msg): if b == 0 or d == 0: pass else: x = Rational(BigInt(a), BigInt(b)) y = Rational(BigInt(c), BigInt(d)) if c == 0: with self.assertRaises(ZeroDivisionError): diff = x / y else: diff = x / y f = Fraction(a, b) / Fraction(c, d) self.assertEqual(diff, Rational(BigInt(f.numerator), BigInt(f.denominator)), msg=msg)
def func(x, y, msg): if y == 0: with self.assertRaises(ZeroDivisionError): Rational(BigInt(x), BigInt(y)) else: a = Rational(BigInt(x), BigInt(y)) if x == 0: self.assertEqual(a.numerator, BigInt(0), msg=msg) self.assertEqual(a.denominator, abs(BigInt(y)), msg=msg) self.assertTrue(a.positive, msg=msg) else: self.assertEqual(a.numerator, abs(BigInt(x)), msg=msg) self.assertEqual(a.denominator, abs(BigInt(y)), msg=msg) if BigInt(x).positive == BigInt(y).positive: self.assertTrue(a.positive, msg=msg) else: self.assertFalse(a.positive, msg=msg)
def main(): num, den = enterData("Enter data for r1") r1 = Rational(num, den) num, den = enterData("Enter data for r2") r2 = Rational(num, den) print() r3 = Rational.multiply(r1, r2) print(r1.getOriginal() + " * " + r2.getOriginal() + " = " + r3.getRational()) r3 = Rational.divide(r1, r2) print(r1.getOriginal() + " / " + r2.getOriginal() + " = " + r3.getRational())
def testNe(self): r1 = Rational(10,12) r2 = Rational(6,8) r3 = r1 != r2 self.assertEqual(str(r3), 'True' or 'False')
def testEq(self): r1 = Rational(1,4) r2 = Rational(2,8) r3 = r1 == r2 self.assertEqual(str(r3), 'True' or 'False')
def testGe(self): r1 = Rational(3,6) r2 = Rational(4,12) r3 = r1 >= r2 self.assertEqual(str(r3), 'True' or 'False')
def testGt(self): r1 = Rational(3,4) r2 = Rational(2,16) r3 = r1 > r2 self.assertEqual(str(r3), 'True' or 'False')
def testLt(self): r1 = Rational(2,4) r2 = Rational(4,6) r3 = r1 < r2 self.assertEqual(str(r3), 'True' or 'False')
def testTruediv(self): r1 = Rational(10,12) r2 = Rational(6,8) r3 = r1 / r2 self.assertEqual(str(r3), '10/9')
def genVals (self,count=5): while self.k <= count: self.piList.append(Rational.Rational(int(math.pow(-1,self.k+1)),(2*self.k)-1)) self.k+=1
def testAdd(self): r1 = Rational(1,4) r2 = Rational(-4,8) r3 = r1 + r2 self.assertEqual(str(r3), '-1/4')
def testsimplify(self): #self.assertEqual(Rational.simplify(12/14), (6/7)) self.assertEqual(Rational(12, 14).simplify(), Rational(6, 7))
def testConstructorTwolnt(self): r = Rational(3, 4) self.assertEqual(str(r), '3/4')
import Rational engineProgramLoop = True while engineProgramLoop == True: Rational.Rational().meetUser() num1 = int(input("Enter number 1: ")) num2 = int(input("Enter number 2: ")) num3 = int(input("Enter number 3: ")) num4 = int(input("Enter number 4: ")) operation = input("Operation --> ") fraction1 = Rational.Rational(num1, num2) fraction2 = Rational.Rational(num3, num4) print(f"{fraction1} {operation} {fraction1} ") if (num2 == 0) or (num4 == 0): print(f"Division by zero denominator:{num2}") engineExitLoop = True while engineExitLoop == True: exitUser = int( input( "\nIf you want exit program enter 0\nIf you want retry enter 1\n--> " )) if (exitUser == 1): engineExitLoop = False elif (exitUser == 0): engineExitLoop = False engineProgramLoop = False
def test_hash(self): a = Rational(BigInt(2), BigInt(4)) b = Rational(BigInt(1), BigInt(2)) c = Rational(BigInt(-1), BigInt(2)) d = Rational(BigInt(2), BigInt(-4)) self.assertEqual(len(set([a, b, c, d])), 2)
import Rational fractionOne = Rational.Rational(2, 6) fractionTwo = Rational.Rational(6, 10) print("Reduced form of Fraction One: {}".format(fractionOne)) print("Reduced form of Fraction Two: {}".format(fractionTwo)) print("Addition {} + {} = {} ".format(fractionOne, fractionTwo, fractionOne.__add__(fractionTwo))) print("Subtraction {} - {} = {} ".format(fractionOne, fractionTwo, fractionOne.__sub__(fractionTwo))) print("Multiplication {} x {} = {} ".format(fractionOne, fractionTwo, fractionOne.__mul__(fractionTwo))) print("Division {} ÷ {} = {} ".format(fractionOne, fractionTwo, fractionOne.__div__(fractionTwo)))
import Rational # 유리수 r1과 r2를 생성하고 초기화한다. r1 = Rational.Rational(4, 2) r2 = Rational.Rational(2, 3) # 결과를 출력한다. print(r1, "+", r2, "=", r1 + r2) print(r1, "-", r2, "=", r1 - r2) print(r1, "*", r2, "=", r1 * r2) print(r1, "/", r2, "=", r1 / r2) print(r1, ">", r2, "의 결과는", r1 > r2) print(r1, ">=", r2, "의 결과는", r1 >= r2) print(r1, "<", r2, "의 결과는", r1 < r2) print(r1, "<=", r2, "의 결과는", r1 <= r2) print(r1, "==", r2, "의 결과는", r1 == r2) print(r1, "!=", r2, "의 결과는", r1 != r2) print("int(r2)는", int(r2)) print("float(r2)는", float(r2)) print("r2[0]는", r2[0]) print("r2[1]은", r2[1])
def testConstructorOnelnt(self): r = Rational(-3) self.assertEqual(str(r), '-3/1')
def testSub(self): r1 = Rational(1,4) r2 = Rational(2,8) r3 = r1 - r2 self.assertEqual(str(r3), '0/1')
def testMul(self): r1 = Rational(2, 3) r2 = Rational(3, 4) r3 = r1 * r2 self.assertEqual(str(r3), '6/12')
from Rational import * r1 = Rational(1, 2) print(r1)