Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Astigarraga <poteland@gmail.com>2010-04-05 08:05:58 (GMT)
committer Pablo Astigarraga <poteland@gmail.com>2010-04-05 08:05:58 (GMT)
commit4e790036f11f011e410d65460c642b1eba96b809 (patch)
treea09177600c4fbcdbd5b74e0b66f90838e71a04be
parent08bacb1ca26b45b03fe7ee4e9c4eeae3873a2d2d (diff)
parent7147b9dcc0eb1c67b380f37a209a9be0975b8fec (diff)
Merge branch 'pote'
-rw-r--r--fracciones.activity/fractionlogic.py72
-rw-r--r--fracciones.activity/fractionpresentation.py2
2 files changed, 72 insertions, 2 deletions
diff --git a/fracciones.activity/fractionlogic.py b/fracciones.activity/fractionlogic.py
index 96dc506..57a6d00 100644
--- a/fracciones.activity/fractionlogic.py
+++ b/fracciones.activity/fractionlogic.py
@@ -13,14 +13,27 @@ class Fraction(object):
def __init__(self):
self.numerator = None
self.denominator = None
-
+
def __eq__(self,other_fraction):
if (self.numerator * other_fraction.denominator == self.denominator * other_fraction.numerator) and type(other_fraction) is Fraction:
return True
else:
return False
+ def __ne__(self,other_fraction):
+ if (self.numerator * other_fraction.denominator != self.denominator * other_fraction.numerator):
+ return True
+ else:
+ return False
+ def __add__(self,other_fraction):
+ if not (type(other_fraction) is Fraction):
+ raise Exception("Fraction Objects only allow addition with other Fraction objects")
+ else:
+ return calculate(self,other_fraction,"+")
+
+
+
class FractionLogic(object):
def __init__(self):
@@ -64,3 +77,60 @@ class FractionLogic(object):
if self.fraction.denominator is None:
return "<FractionLogic(Undefined)>"
return "<FractionLogic(%i,%i)>"%(self.fraction.numerator,self.fraction.denominator)
+
+
+
+
+def calculate(fraction_1,fraction_2,operator):
+ """Calls appropiate method depending on the operator received as an argument"""
+ """Requires 2 fraction objects and a one character string with the operator (+,-,*,/)"""
+ result = ( )
+ if operator == "+" :
+ result = add(fraction_1,fraction_2)
+ elif operator == "-" :
+ result = substract(fraction_1,fraction_2)
+ elif operator == "*" :
+ result = multiply(fraction_1,fraction_2)
+ elif operator == "/" :
+ result = divide(fraction_1,fraction_2)
+ return result
+
+def add(fraction_1,fraction_2):
+ result = Fraction()
+ if fraction_1.denominator == fraction_2.denominator :
+ result.numerator = fraction_1.numerator + fraction_2.numerator
+ result.denominator = fraction_1.denominator
+ return result
+ else:
+ mcm = fraction_1.denominator * fraction_2.denominator
+ result.denominator = mcm
+ alt_fraction_1 = fraction_1.numerator * fraction_2.denominator
+ alt_fraction_2 = fraction_2.numerator * fraction_1.denominator
+ result.numerator = alt_fraction_1 + alt_fraction_2
+ return result
+
+def substract(fraction_1,fraction_2):
+ result_fraction = Fraction()
+ if fraction_1.denominator == fraction_2.denominator :
+ result.numerator = fraction_1.numerator - fraction_2.numerator
+ result.denominator = fraction_1.denominator
+ return result
+ else:
+ mcm = fraction_1.denominator * fraction_2.denominator
+ result.denominator = mcm
+ alt_fraction_1 = fraction_1.numerator * fraction_2.denominator
+ alt_fraction_2 = fraction_2.numerator * fraction_1.denominator
+ result.numerator = alt_fraction_1 - alt_fraction_2
+ return result
+
+def multiply(fraction_1,fraction_2):
+ result = Fraction()
+ result.numerator = fraction_1.numerator * fraction_2.numerator
+ result.denominator = fraction_1.denominator * fraction_2.denominator
+ return result
+
+def divide(fraction_1,fraction_2):
+ inverse_fraction = Fraction()
+ inverse_fraction.numerator = fraction_2.denominator
+ inverse_fraction.denominator = fraction_2.numerator
+ return multiply(fraction_1,fraction_2) \ No newline at end of file
diff --git a/fracciones.activity/fractionpresentation.py b/fracciones.activity/fractionpresentation.py
index 5a73b4b..a6dc54e 100644
--- a/fracciones.activity/fractionpresentation.py
+++ b/fracciones.activity/fractionpresentation.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""
-Contain the presentation of the game, a widget descendant from container.
+Contains the presentation of the game, a widget descendant from container.
"""
import logging