예제 #1
0
 def test_valeur_colonne(self):
     tab = Table()
     tab.create_columns(['col1'])
     tab.append_row([1])
     tab.append_row([2])
     self.assertEqual(tab, [[1],[2]])
     self.assertEqual(tab[:,0], [1,2])
예제 #2
0
 def test_valeur_colonne(self):
     tab = Table()
     tab.create_columns(['col1'])
     tab.append_row([1])
     tab.append_row([2])
     self.assertEqual(tab, [[1], [2]])
     self.assertEqual(tab[:, 0], [1, 2])
예제 #3
0
 def test_valeur_scalaire(self):
     tab = Table()
     tab.create_columns(['col1'])
     tab.append_row([1])
     self.assertEqual(tab, [[1]])
     tab.append_row([2])
     self.assertEqual(tab[0,0], 1)
     self.assertEqual(tab[1,0], 2)
예제 #4
0
 def test_valeur_scalaire(self):
     tab = Table()
     tab.create_columns(['col1'])
     tab.append_row([1])
     self.assertEqual(tab, [[1]])
     tab.append_row([2])
     self.assertEqual(tab[0, 0], 1)
     self.assertEqual(tab[1, 0], 2)
예제 #5
0
    def read_schedule(self, fname):
        schedule = xml_parse( fname )
        checker = ScheduleChecker()
        if not checker.validate(schedule, fname):
            raise MalformedProjectFile(str(checker))

        activities = Table(default_value=None,
                           col_names=['begin', 'end', 'resource', 'task',
                                      'usage', 'src'])
        tasks = Table(default_value=None,
                      col_names=['begin', 'end', 'status', 'cost', 'unit'])
        costs = Table(default_value=None,
                      col_names=['task', 'resource', 'cost', 'unit'])

        for task in schedule.findall("task"):
            t_id = task.get('id')
            tasks.create_row( t_id )
            global_cost = task.find("global-cost")
            tasks.set_cell_by_ids(t_id, 'unit', global_cost.get('unit'))
            tasks.set_cell_by_ids(t_id, 'cost', float(global_cost.text) )
            tasks.set_cell_by_ids(t_id, 'status', task.find('status').text )
            for cd in task.findall("contraint-date"):
                date = iso_date( cd.text )
                if cd.get('type') == 'begin-at-date':
                    tasks.set_cell_by_ids( t_id, 'begin', date )
                elif cd.get('type') == 'end-at-date':
                    tasks.set_cell_by_ids( t_id, 'end', date )
            for ct in task.findall("constraint-task"):
                pass
                #raise NotImplementedError("constraint-task not implemented in schedule")
            for report in task.findall("report-list/report"):
                activities.append_row( (iso_date(report.get('from')),
                                             iso_date(report.get('to')),
                                             report.get('idref'),
                                             t_id,
                                             float(report.get('usage')) ) )
            for cost in task.findall("costs_list/cost"):
                costs.append_row( (t_id, cost.attrib['idref'],float(cost.text),None) )

        for milestone in schedule.findall("milestone"):
            t_id = milestone.get('id')
            cd = milestone.find("constraint-date")
            date = iso_date( cd.text )
            self.project.milestones[t_id] = date

        self.project.add_schedule(activities)
        self.project.tasks = tasks
        self.project.costs = costs
        self.project.nb_solution = 1 # if we read a schedule from an xml file,
예제 #6
0
 def setUp(self):
     t = Table()
     t.create_columns(['date', 'res', 'task', 'usage'])
     t.append_row(['date1', 'ing1', 'task1', 0.3])
     t.append_row(['date1', 'ing2', 'task2', 0.3])
     t.append_row(['date2', 'ing3', 'task3', 0.3])
     t.append_row(['date3', 'ing4', 'task2', 0.3])
     t.append_row(['date1', 'ing1', 'task3', 0.3])
     t.append_row(['date3', 'ing1', 'task3', 0.3])
     self.table = t
예제 #7
0
 def setUp(self):
     t = Table()
     t.create_columns(['date', 'res', 'task', 'usage'])
     t.append_row(['date1', 'ing1', 'task1', 0.3])
     t.append_row(['date1', 'ing2', 'task2', 0.3])
     t.append_row(['date2', 'ing3', 'task3', 0.3])
     t.append_row(['date3', 'ing4', 'task2', 0.3])
     t.append_row(['date1', 'ing1', 'task3', 0.3])
     t.append_row(['date3', 'ing1', 'task3', 0.3])
     self.table = t
 def setUp(self):
     t = Table()
     t.create_columns(["date", "res", "task", "usage"])
     t.append_row(["date1", "ing1", "task1", 0.3])
     t.append_row(["date1", "ing2", "task2", 0.3])
     t.append_row(["date2", "ing3", "task3", 0.3])
     t.append_row(["date3", "ing4", "task2", 0.3])
     t.append_row(["date1", "ing1", "task3", 0.3])
     t.append_row(["date3", "ing1", "task3", 0.3])
     self.table = t
예제 #9
0
 def test_valeur_ligne(self):
     tab = Table()
     tab.create_columns(['col1','col2'])
     tab.append_row([1,2])
     self.assertEqual(tab, [[1,2]])
예제 #10
0
class TableStyleSheetTC(TestCase):
    """The Stylesheet test case
    """
    def setUp(self):
        """Builds a simple table to test the stylesheet
        """
        self.table = Table()
        self.table.create_row('row1')
        self.table.create_columns(['a','b','c'])
        self.stylesheet = TableStyleSheet()
        # We don't want anything to be printed
        self.stdout_backup = sys.stdout
        sys.stdout = StringIO()

    def tearDown(self):
        sys.stdout = self.stdout_backup

    def test_add_rule(self):
        """Tests that the regex pattern works as expected.
        """
        rule = '0_2 = sqrt(0_0**2 + 0_1**2)'
        self.stylesheet.add_rule(rule)
        self.table.set_row(0, [3,4,0])
        self.table.apply_stylesheet(self.stylesheet)
        self.assertEqual(self.table[0], [3,4,5])
        self.assertEqual(len(self.stylesheet.rules), 1)
        self.stylesheet.add_rule('some bad rule with bad syntax')
        self.assertEqual(len(self.stylesheet.rules), 1, "Ill-formed rule mustn't be added")
        self.assertEqual(len(self.stylesheet.instructions), 1, "Ill-formed rule mustn't be added")

    def test_stylesheet_init(self):
        """tests Stylesheet.__init__"""
        rule = '0_2 = 1'
        sheet = TableStyleSheet([rule, 'bad rule'])
        self.assertEqual(len(sheet.rules), 1, "Ill-formed rule mustn't be added")
        self.assertEqual(len(sheet.instructions), 1, "Ill-formed rule mustn't be added")

    def test_rowavg_rule(self):
        """Tests that add_rowavg_rule works as expected
        """
        self.table.set_row(0, [10,20,0])
        self.stylesheet.add_rowavg_rule((0,2), 0, 0, 1)
        self.table.apply_stylesheet(self.stylesheet)
        val = self.table[0,2]
        self.assert_(int(val) == 15)


    def test_rowsum_rule(self):
        """Tests that add_rowsum_rule works as expected
        """
        self.table.set_row(0, [10,20,0])
        self.stylesheet.add_rowsum_rule((0,2), 0, 0, 1)
        self.table.apply_stylesheet(self.stylesheet)
        val = self.table[0,2]
        self.assert_(val == 30)


    def test_colavg_rule(self):
        """Tests that add_colavg_rule works as expected
        """
        self.table.set_row(0, [10,20,0])
        self.table.append_row([12,8,3], 'row2')
        self.table.create_row('row3')
        self.stylesheet.add_colavg_rule((2,0), 0, 0, 1)
        self.table.apply_stylesheet(self.stylesheet)
        val = self.table[2,0]
        self.assert_(int(val) == 11)


    def test_colsum_rule(self):
        """Tests that add_colsum_rule works as expected
        """
        self.table.set_row(0, [10,20,0])
        self.table.append_row([12,8,3], 'row2')
        self.table.create_row('row3')
        self.stylesheet.add_colsum_rule((2,0), 0, 0, 1)
        self.table.apply_stylesheet(self.stylesheet)
        val = self.table[2,0]
        self.assert_(val == 22)
예제 #11
0
 def test_valeur_ligne(self):
     tab = Table()
     tab.create_columns(['col1', 'col2'])
     tab.append_row([1, 2])
     self.assertEqual(tab, [[1, 2]])
예제 #12
0
class TableStyleSheetTC(TestCase):
    """The Stylesheet test case
    """
    def setUp(self):
        """Builds a simple table to test the stylesheet
        """
        self.table = Table()
        self.table.create_row('row1')
        self.table.create_columns(['a', 'b', 'c'])
        self.stylesheet = TableStyleSheet()
        # We don't want anything to be printed
        self.stdout_backup = sys.stdout
        sys.stdout = StringIO()

    def tearDown(self):
        sys.stdout = self.stdout_backup

    def test_add_rule(self):
        """Tests that the regex pattern works as expected.
        """
        rule = '0_2 = sqrt(0_0**2 + 0_1**2)'
        self.stylesheet.add_rule(rule)
        self.table.set_row(0, [3, 4, 0])
        self.table.apply_stylesheet(self.stylesheet)
        self.assertEqual(self.table[0], [3, 4, 5])
        self.assertEqual(len(self.stylesheet.rules), 1)
        self.stylesheet.add_rule('some bad rule with bad syntax')
        self.assertEqual(len(self.stylesheet.rules), 1,
                         "Ill-formed rule mustn't be added")
        self.assertEqual(len(self.stylesheet.instructions), 1,
                         "Ill-formed rule mustn't be added")

    def test_stylesheet_init(self):
        """tests Stylesheet.__init__"""
        rule = '0_2 = 1'
        sheet = TableStyleSheet([rule, 'bad rule'])
        self.assertEqual(len(sheet.rules), 1,
                         "Ill-formed rule mustn't be added")
        self.assertEqual(len(sheet.instructions), 1,
                         "Ill-formed rule mustn't be added")

    def test_rowavg_rule(self):
        """Tests that add_rowavg_rule works as expected
        """
        self.table.set_row(0, [10, 20, 0])
        self.stylesheet.add_rowavg_rule((0, 2), 0, 0, 1)
        self.table.apply_stylesheet(self.stylesheet)
        val = self.table[0, 2]
        self.assert_(int(val) == 15)

    def test_rowsum_rule(self):
        """Tests that add_rowsum_rule works as expected
        """
        self.table.set_row(0, [10, 20, 0])
        self.stylesheet.add_rowsum_rule((0, 2), 0, 0, 1)
        self.table.apply_stylesheet(self.stylesheet)
        val = self.table[0, 2]
        self.assert_(val == 30)

    def test_colavg_rule(self):
        """Tests that add_colavg_rule works as expected
        """
        self.table.set_row(0, [10, 20, 0])
        self.table.append_row([12, 8, 3], 'row2')
        self.table.create_row('row3')
        self.stylesheet.add_colavg_rule((2, 0), 0, 0, 1)
        self.table.apply_stylesheet(self.stylesheet)
        val = self.table[2, 0]
        self.assert_(int(val) == 11)

    def test_colsum_rule(self):
        """Tests that add_colsum_rule works as expected
        """
        self.table.set_row(0, [10, 20, 0])
        self.table.append_row([12, 8, 3], 'row2')
        self.table.create_row('row3')
        self.stylesheet.add_colsum_rule((2, 0), 0, 0, 1)
        self.table.apply_stylesheet(self.stylesheet)
        val = self.table[2, 0]
        self.assert_(val == 22)