mathmaker  0.6(alpha)
mamk_misc/doc/mathmaker4doxygen/maintenance/autotest/obj_test/table_test.py
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, bytes("--- TABLES\n", 'utf-8'))
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}"])