def test_indent_tree(self):
        requested = ["P7", "P8"]
        mgr2 = NodeManager(
            {"Start Datetime": datetime.now()}, 10, self.lfl_params, requested, [], self.derived_nodes, {}, {}
        )
        gr = graph_nodes(mgr2)
        gr.node["Raw1"]["active"] = True
        gr.node["Raw2"]["active"] = False
        gr.node["P4"]["active"] = False
        self.assertEqual(
            indent_tree(gr, "P7", space="__", delim=" ", label=False),
            [" P7", "__ [P4]", "____ Raw1", "____ [Raw2]", "__ P5", "____ Raw3", "____ Raw4", "__ P6", "____ Raw3"],
        )
        # don't recurse valid parameters...
        self.assertEqual(indent_tree(gr, "P5", label=False, recurse_active=False), [])
        self.assertEqual(indent_tree(gr, "P4", label=False, recurse_active=False), ["- [P4]", "  - [Raw2]"])

        self.assertEqual(
            indent_tree(gr, "root"),
            [
                "- root",
                "  - P7 (DerivedParameterNode)",
                "    - [P4] (DerivedParameterNode)",
                "      - Raw1 (HDFNode)",
                "      - [Raw2] (HDFNode)",
                "    - P5 (DerivedParameterNode)",
                "      - Raw3 (HDFNode)",
                "      - Raw4 (HDFNode)",
                "    - P6 (DerivedParameterNode)",
                "      - Raw3 (HDFNode)",
                "  - P8 (DerivedParameterNode)",
                "    - Raw5 (HDFNode)",
            ],
        )
    def test_indent_tree(self):
        requested = ['P7', 'P8']
        mgr2 = NodeManager({'Start Datetime': datetime.now()}, 10, self.lfl_params,
                           requested, [], self.derived_nodes, {}, {})
        gr = graph_nodes(mgr2)
        gr.node['Raw1']['active'] = True
        gr.node['Raw2']['active'] = False
        gr.node['P4']['active'] = False
        self.assertEqual(
            indent_tree(gr, 'P7', space='__', delim=' ', label=False),
            [' P7',
             '__ [P4]',
             '____ Raw1',
             '____ [Raw2]',
             '__ P5',
             '____ Raw3',
             '____ Raw4',
             '__ P6',
             '____ Raw3',
            ])
        # don't recurse valid parameters...
        self.assertEqual(
            indent_tree(gr, 'P5', label=False, recurse_active=False),
            [])
        self.assertEqual(
            indent_tree(gr, 'P4', label=False, recurse_active=False),
            ['- [P4]',
             '  - [Raw2]',
             ])

        self.assertEqual(
            indent_tree(gr, 'root'),
            ['- root',
             '  - P7 (DerivedParameterNode)',
             '    - [P4] (DerivedParameterNode)',
             '      - Raw1 (HDFNode)',
             '      - [Raw2] (HDFNode)',
             '    - P5 (DerivedParameterNode)',
             '      - Raw3 (HDFNode)',
             '      - Raw4 (HDFNode)',
             '    - P6 (DerivedParameterNode)',
             '      - Raw3 (HDFNode)',
             '  - P8 (DerivedParameterNode)',
             '    - Raw5 (HDFNode)',
            ])
 def test_indent_tree(self):
     requested = ['P7', 'P8']
     mgr2 = NodeManager({'Start Datetime': datetime.now()}, 10, self.lfl_params,
                        requested, [], self.derived_nodes, {}, {})
     gr = graph_nodes(mgr2)
     gr.node['Raw1']['active'] = True
     gr.node['Raw2']['active'] = False
     gr.node['P4']['active'] = False
     self.assertEqual(
         indent_tree(gr, 'P7', space='__', delim=' ', label=False),
         [' P7',
          '__ [P4]',
          '____ Raw1',
          '____ [Raw2]',
          '__ P5',
          '____ Raw3',
          '____ Raw4',
          '__ P6',
          '____ Raw3',
         ])
     # don't recurse valid parameters...
     self.assertEqual(
         indent_tree(gr, 'P5', label=False, recurse_active=False),
         [])
     self.assertEqual(
         indent_tree(gr, 'P4', label=False, recurse_active=False),
         ['- [P4]',
          '  - [Raw2]',
          ])        
     
     self.assertEqual(
         indent_tree(gr, 'root'),
         ['- root',
          '  - P7 (DerivedParameterNode)',
          '    - [P4] (DerivedParameterNode)',
          '      - Raw1 (HDFNode)',
          '      - [Raw2] (HDFNode)',
          '    - P5 (DerivedParameterNode)',
          '      - Raw3 (HDFNode)',
          '      - Raw4 (HDFNode)',
          '    - P6 (DerivedParameterNode)',
          '      - Raw3 (HDFNode)',
          '  - P8 (DerivedParameterNode)',
          '    - Raw5 (HDFNode)',
         ])