mathmaker
0.4(alpha)
|
00001 # -*- coding: utf-8 -*- 00002 00003 # Mathmaker creates automatically maths exercises sheets 00004 # with their answers 00005 # Copyright 2006-2014 Nicolas Hainaux <nico_h@users.sourceforge.net> 00006 00007 # This file is part of Mathmaker. 00008 00009 # Mathmaker is free software; you can redistribute it and/or modify 00010 # it under the terms of the GNU General Public License as published by 00011 # the Free Software Foundation; either version 3 of the License, or 00012 # any later version. 00013 00014 # Mathmaker is distributed in the hope that it will be useful, 00015 # but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 # GNU General Public License for more details. 00018 00019 # You should have received a copy of the GNU General Public License 00020 # along with Mathmaker; if not, write to the Free Software 00021 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00022 00023 import os 00024 import sys 00025 import math 00026 #import locale 00027 00028 #from lib.common import default 00029 00030 from core import * 00031 from core.base_calculus import * 00032 from core.calculus import * 00033 00034 from maintenance.autotest import common 00035 00036 #try: 00037 # locale.setlocale(locale.LC_ALL, default.LANGUAGE + '.' + default.ENCODING) 00038 #except: 00039 # locale.setlocale(locale.LC_ALL, '') 00040 00041 check = common.check 00042 00043 def action(): 00044 if common.verbose: 00045 os.write(common.output, "--- TABLES\n") 00046 00047 # Don't forget to uncomment the convenient lines above if a test 00048 # requires to use the locale module. 00049 00050 t1 = Table([[Item((2)), Item((5)), Item((6)), Item((7)) ], 00051 [Item((4)), Item((10)), Item((12)), Item((14))] 00052 ] 00053 ) 00054 00055 check(str(len(t1)), 00056 ["4"]) 00057 00058 check(str(t1.is_numeric()), 00059 ["True"]) 00060 00061 check(t1.into_str(), 00062 [ "\\begin{tabular}{|c|c|c|c|}" \ 00063 + "\hline " \ 00064 + "2&5&6&7\\\\" \ 00065 + "\\hline " \ 00066 + "4&10&12&14\\\\" \ 00067 + "\\hline " \ 00068 + "\end{tabular}" ]) 00069 00070 check(t1.into_str(as_a_quotients_equality='yes'), 00071 ["\\frac{2}{4}=\\frac{5}{10}=\\frac{6}{12}=\\frac{7}{14}" ]) 00072 00073 check(t1.cross_product((0,1), 0), 00074 ["\\frac{5\\times 4}{10}"]) 00075 00076 check(t1.cross_product((0,1), 1), 00077 ["\\frac{2\\times 10}{4}"]) 00078 00079 check(t1.cross_product((0,1), 2), 00080 ["\\frac{5\\times 4}{2}"]) 00081 00082 check(t1.cross_product((0,1), 3), 00083 ["\\frac{2\\times 10}{5}"])