def test_empty_input(self):
        defaultWeight = MockWeight()
        obj = TableConfigCompleter(
            defaultSummaryClass = MockDefaultSummary,
            defaultWeight = defaultWeight,
            defaultOutDir = 'tmp'
        )

        expected = dict(
            keyAttrNames = (),
            keyIndices = None,
            binnings = None,
            keyOutColumnNames = (),
            valAttrNames = None,
            valIndices = None,
            summaryClass = MockDefaultSummary,
            valOutColumnNames = ('n', 'nvar'),
            weight = defaultWeight,
            sort = True,
            nevents = None,
            outFile = True,
            outFileName = 'tbl_n_component.txt',
            outFilePath = 'tmp/tbl_n_component.txt',
        )

        tblcfg = dict()
        actual = obj.complete(tblcfg)

        self.assertEqual(actual, expected)
 def test_copy_not_the_same_object(self):
     obj = TableConfigCompleter(
         defaultSummaryClass = MockDefaultSummary,
         defaultWeight = MockWeight(),
         defaultOutDir = 'tmp'
     )
     tblcfg_in = dict(keyAttrNames = ('met_pt', ), binnings = (MockBinning(), ))
     tblcfg_out = obj.complete(tblcfg_in)
     self.assertIsNot(tblcfg_in, tblcfg_out)
    def test_specify_summary_class_2_keys_2_vals_key_indices_val_indices(self):

        defaultWeight = MockWeight()
        obj = TableConfigCompleter(
            defaultSummaryClass = MockDefaultSummary,
            defaultWeight = defaultWeight,
            defaultOutDir = 'tmp'
        )

        binning1 = MockBinning()
        binning2 = MockBinning()

        expected = dict(
            keyAttrNames = ('key1', 'key2'),
            keyIndices = (None, 1),
            binnings = (binning1, binning2),
            keyOutColumnNames = ('key1', 'key2'),
            valAttrNames = ('val1', 'val2'),
            valIndices = (2, 3),
            summaryClass = MockSummary2,
            valOutColumnNames = ('val1', 'val2'),
            weight = defaultWeight,
            sort = True,
            nevents = None,
            outFile = True,
            outFileName = 'tbl_MockSummary2_key1_key2_1_val1_2_val2_3.txt',
            outFilePath = 'tmp/tbl_MockSummary2_key1_key2_1_val1_2_val2_3.txt',
        )

        tblcfg = dict(
            keyAttrNames = ('key1', 'key2'),
            binnings = (binning1, binning2),
            keyIndices = (None, 1),
            valAttrNames = ('val1', 'val2'),
            summaryClass = MockSummary2,
            valIndices = (2, 3),
        )

        actual = obj.complete(tblcfg)

        self.assertEqual(actual, expected)