mathmaker  0.6(alpha)
mamk_misc/doc/mathmaker4doxygen/sheet/EquationsTest.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 machine
00024 import exercise
00025 
00026 from S_Structure import S_Structure
00027 
00028 FONT_SIZE_OFFSET = -2
00029 SHEET_LAYOUT_TYPE = 'short_test'
00030 SHEET_LAYOUT_UNIT = "cm"
00031 # -----------------------  lines_nb    col_widths   exercises
00032 SHEET_LAYOUT = { 'exc' : [ None,                    'all'
00033                          ],
00034                  'ans' : [ None,                    2,
00035                            'jump',                  'next_page',
00036                            None,                    1
00037                          ]
00038                }
00039 
00040 # ------------------------------------------------------------------------------
00041 # --------------------------------------------------------------------------
00042 # ------------------------------------------------------------------------------
00043 ##
00044 # @class EquationsTest
00045 # @brief A short test on first degree equations
00046 class EquationsTest(S_Structure):
00047 
00048 
00049 
00050 
00051 
00052     # --------------------------------------------------------------------------
00053     ##
00054     #   @brief Constructor
00055     #   @param embedded_machine The machine to be used
00056     #   @param **options Any options
00057     #   @return One instance of sheet.EquationsTest
00058     def __init__(self, embedded_machine, **options):
00059         self.derived = True
00060         S_Structure.__init__(self, embedded_machine, FONT_SIZE_OFFSET,
00061                              SHEET_LAYOUT_UNIT, SHEET_LAYOUT,
00062                              SHEET_LAYOUT_TYPE)
00063 
00064         # BEGINING OF THE ZONE TO REWRITE (see explanations below) ------------
00065         self.header = _("Name : .......................................")
00066         self.title = _("Short Test : Equations")
00067         self.subtitle = ""
00068         self.text = _("Solve the following equations.")
00069         self.answers_title = _("Examples of answers")
00070 
00071         # Exercises :
00072         for i in range(2):
00073             ex1 = exercise.X_Equation(self.machine,
00074                                       x_kind='short_test',
00075                                       x_subkind='basic')
00076 
00077             ex2 = exercise.X_Equation(self.machine,
00078                                       x_kind='short_test',
00079                                       x_subkind='classic_harder')
00080 
00081             ex3 = exercise.X_Equation(self.machine,
00082                                       x_kind='short_test',
00083                                       x_subkind='harder_harder')
00084 
00085             self.exercises_list.append(ex1)
00086             self.exercises_list.append(ex2)
00087             self.exercises_list.append(ex3)
00088 
00089 
00090 
00091 
00092     # --------------------------------------------------------------------------
00093     ##
00094     #   @brief Writes to the output all exercises' answers
00095     #def write_answers(self, first_and_last):
00096     #    first = first_and_last[0]
00097     #    last = first_and_last[1]
00098     #    self.machine.reset_exercises_counter()
00099     #    self.machine.write_set_font_size_to('large')
00100     #    for i in xrange(last - first + 1):
00101 
00102     #        if self.tabular_format_answers[2*i] != 0:
00103     #            if self.tabular_format_answers[2*i] == 'end':
00104     #                self.machine.write_tabular_ends()
00105     #            elif self.tabular_format_answers[2*i] == '&':
00106     #                self.machine.write_separator_tabular_columns()
00107     #            elif type(self.tabular_format_answers[2*i]) == str:
00108     #                self.machine.write_tabular_begins(\
00109     #                                          self.tabular_format_answers[2*i])
00110 
00111     #        self.machine.write_exercise_number()
00112 
00113     #        self.exercises_list[i + first].write_answer()
00114 
00115 
00116     #        if self.tabular_format_answers[2*i+1] != 0:
00117     #            if self.tabular_format_answers[2*i+1] == 'end':
00118     #                self.machine.write_tabular_ends()
00119     #            elif self.tabular_format_answers[2*i+1] == '&':
00120     #                self.machine.write_separator_tabular_columns()
00121     #            elif type(self.tabular_format_answers[2*i+1]) == str:
00122     #                self.machine.write_tabular_begins(\
00123     #                                        self.tabular_format_answers[2*i+1])
00124 
00125     #        if i == 0:
00126     #            self.machine.write_new_line()
00127 
00128     #        if i == 1:
00129     #            self.machine.write_jump_to_next_page()
00130 
00131 
00132 
00133 
00134 
00135 
00136 
00137 
00138 
00139 
00140     # END ---------------------------------------------------------------------