def __floor_ceil(function, number, significance, mode): """ Generic function used by ceil & floor function included in open formula Arguments function -- str number -- Number or CellReference significance -- Number or CellRefenrece mode -- None or Number or CellReference """ if mode is None: if (type(function) is str and type(number) in (Number, CellReference) and type(significance) in (Number, CellReference)): return function.upper() + "(" + of_parameter_list( number.str, significance.str) + ")" else: raise TypeError, "Arguments must be Numbers or CellReferences" else: if (type(function) is str and type(number) in (Number, CellReference) and type(significance) in (Number, CellReference) and type(mode) in (Number, CellReference)): return function.upper() + "(" + of_parameter_list( number.str, significance.str, mode.str) + ")" else: raise TypeError, "Arguments must be Numbers or CellReferences"
def test_of_parameter_list(self): self.assertEqual(of_parameter_list("abc", "def", "ghi"), "abc ; def ; ghi") self.assertEqual(of_parameter_list("abc", "", "ghi"), "abc ; ; ghi") self.assertEqual(of_parameter_list("abc"), "abc") self.assertRaises(TypeError, of_parameter_list, "abc", 2, "def")
def __floor_ceil(function, number, significance, mode): """ Generic function used by ceil & floor function included in open formula Arguments function -- str number -- Number or CellReference significance -- Number or CellRefenrece mode -- None or Number or CellReference """ if mode is None: if (type(function) is str and type(number) in (Number, CellReference) and type(significance) in (Number, CellReference)): return function.upper()+"("+of_parameter_list(number.str, significance.str)+")" else: raise TypeError, "Arguments must be Numbers or CellReferences" else: if (type(function) is str and type(number) in (Number, CellReference) and type(significance) in (Number, CellReference) and type(mode) in (Number, CellReference)): return function.upper()+"("+of_parameter_list(number.str, significance.str, mode.str)+")" else: raise TypeError, "Arguments must be Numbers or CellReferences"
def __round(function, number, count): """ Generic function used by all the round function in open formula Arguments : function -- str number -- Number or CellReference count -- None or Number or CellReference """ if count is None: if type(function) is str and type(number) in (Number, CellReference): return function.upper() + "(" + of_parameter_list(number.str) + ")" else: raise TypeError, "Argument must be a Number or a CellReference" else: if (type(function) is str and type(number) in (Number, CellReference) and type(count) in (Number, CellReference)): return function.upper() + "(" + of_parameter_list( number.str, count.str) + ")" else: raise TypeError, "Arguments must be Numbers or CellReferences"
def __round(function, number, count): """ Generic function used by all the round function in open formula Arguments : function -- str number -- Number or CellReference count -- None or Number or CellReference """ if count is None: if type(function) is str and type(number) in (Number, CellReference): return function.upper()+"("+of_parameter_list(number.str)+")" else: raise TypeError, "Argument must be a Number or a CellReference" else: if (type(function) is str and type(number) in (Number, CellReference) and type(count) in (Number, CellReference)): return function.upper()+"("+of_parameter_list(number.str, count.str)+")" else: raise TypeError, "Arguments must be Numbers or CellReferences"
def of_seriessum(x, n, m, coeff): """ Return the syntax for a seriessum Gives the sum of a power series """ if (type(x) in (Number, CellReference) and type(n) in (Number, CellReference) and type(m) in (Number, CellReference) and type(coeff) in (Number, CellReference, RangeReference)): return "SERIESSUM(" + of_parameter_list(x.str, n.str, m.str, coeff.str) + ")" else: raise TypeError, "Wrong type of arguments"
def of_seriessum(x, n, m, coeff): """ Return the syntax for a seriessum Gives the sum of a power series """ if (type(x) in (Number, CellReference) and type(n) in (Number, CellReference) and type(m) in (Number, CellReference) and type(coeff) in (Number, CellReference, RangeReference)): return "SERIESSUM("+of_parameter_list(x.str, n.str, m.str, coeff.str)+")" else: raise TypeError, "Wrong type of arguments"
def __simple_function2(function, number1, number2): """ Generic implementation the syntax for simple function with two arguments like FUNCTION(number1, number2) Arguments : function -- str number -- Number or CellReference """ if (type(function) is str and type(number1) in (Number, CellReference) and type(number2) in (Number, CellReference)): return function.upper() + "(" + of_parameter_list( number1.str, number2.str) + ")" else: raise TypeError, "Arguments must be Numbers or CellReferences"
def __simple_function2(function, number1, number2): """ Generic implementation the syntax for simple function with two arguments like FUNCTION(number1, number2) Arguments : function -- str number -- Number or CellReference """ if (type(function) is str and type(number1) in (Number, CellReference) and type(number2) in (Number, CellReference)): return function.upper()+"("+of_parameter_list(number1.str, number2.str)+")" else: raise TypeError, "Arguments must be Numbers or CellReferences"