def test_stringify_tree(self):
     tree = Node("Gender",
             ("Female", Node("Bush Approval",
                     ("Approve", Label("McCain")),
                     ("Disapprove", Label("Obama")))),
             ("Male", Node("Ideology",
                     ("Liberal", Label("Obama")),
                     ("Moderate", Label("Obama")),
                     ("Conservative", Label("McCain")))))
     xml_tree = model.stringify_tree(tree)
     self.assertEqual(tree, model.build_tree(xml_tree))
def main(domainxml, trainingsetcsv, restrictionstxt):
    restrictions = dataset.restrictions_from_text(restrictionstxt)

    cols, data = dataset.read(trainingsetcsv.read(), restrictions)
    # call train function with:
    #   `col_sets` - list of sets per column, NOT including class label
    #   `data` (list of ([train data], class))
    tree = Node("swole", ("true", Label("protein and starches")),
            ("false", Label("sugar"))) # dummy temp tree
    tree = c45.run(data, list(enumerate(cols)), 0)
    tree_xml = stringify_tree(tree)
    sys.stdout.buffer.write(tree_xml)