Parser of berki style problems and generator of latex file
Samo Penic
2018-10-26 33c0541387fa5fada6fcd93388f1aae9c23d8396
Debugged formatter.
2 files modified
24 ■■■■■ changed files
tools/Formatter.py 13 ●●●●● patch | view | raw | blame | history
tools/tests/formatter_test.py 11 ●●●● patch | view | raw | blame | history
tools/Formatter.py
@@ -13,18 +13,17 @@
        except (ValueError, TypeError):
            self.type = STRING
        self.formatted_value = None
        self.type = STRING
        if formatting is not None:
            self.format_as(formatting)
            self.format_float(formatting)
        self.formatting = formatting
        # self.formatter=FormatterFactory(formatting)
    def format_as(self, formatting=None):
    def format_float(self, formatting=None):
        if self.type != STRING:
            if formatting is None:
                formatting = self.formatting
            formatter = FormatterFactory.get_formatter(formatting)
            self.formatted_value = formatter.toFormat(self.value)
            self.formatted_value = formatter.getValue(self.value)
    def format_as_tex(self, formatting=None):
        if self.type != STRING:
@@ -83,6 +82,12 @@
            man, int(exp)
        )
    def getValue(self, num):
        exp = self.fexp(num)
        man = self.fman(num)
        man = ("{:." + str(self.precision - 1) + "f}e{}").format(
            man, int(exp))
        return float(man)
class EngFloatFormatter(FormatterFactory):
    def __init__(self, formatparameters):
tools/tests/formatter_test.py
@@ -55,11 +55,11 @@
            "$0.00 \cdot 10^{0}$",
        ]
        sci2 = Formatter.FormatterFactory().get_formatter("sci 2")
        for case, result in zip(testcases,sci2_solutions):
        for case, result in zip(testcases, sci2_solutions):
            self.assertEqual(result, sci2.toFormat(case))
        sci3 = Formatter.FormatterFactory().get_formatter("sci 3")
        for case, result in zip(testcases,sci3_solutions):
        for case, result in zip(testcases, sci3_solutions):
            self.assertEqual(result, sci3.toFormat(case))
    def test_valueClass(self):
@@ -104,9 +104,8 @@
            "$0.00 \cdot 10^{0}$",
        ]
        for case,result in zip (testcases, sci2_solutions):
        for case, result in zip(testcases, sci2_solutions):
            self.assertEqual(result, Formatter.Variable(case, "sci 2").format_as_tex())
        for case,result in zip (testcases, sci3_solutions):
            self.assertEqual(result, Formatter.Variable(case, "sci 3").format_as_tex())
        for case, result in zip(testcases, sci3_solutions):
            self.assertEqual(result, Formatter.Variable(case, "sci 3").format_as_tex())