'Check output for merging option \'Concatenate tables, merge rows\' by
class variable'

def test_output_merge_by_class_outer(self):

    (domainA, domainB) = (self.dataA.domain, self.dataB.domain)
    result_d = Domain((domainA.attributes + domainB.attributes), (domainA.class_vars + domainB.class_vars), (domainA.metas + domainB.metas))
    result_X = np.array([[0, 0, np.nan, np.nan], [1, 1, 2, np.nan], [2, 0, 1, 1], [3, 1, np.nan, np.nan], [np.nan, np.nan, 0, 0]])
    result_Y = np.array([[0, np.nan], [1, 0], [2, 1], [np.nan, np.nan], [np.nan, np.nan]])
    result_M = np.array([[0.0, 'm1', np.nan], [1.0, 'm2', 0.0], [np.nan, 'm3', 1.0], [0.0, 'm4', np.nan], [np.nan, '', np.nan]]).astype(object)
    result = Table(result_d, result_X, result_Y, result_M)
    self.send_signal(self.widget.Inputs.data, self.dataA)
    self.send_signal(self.widget.Inputs.extra_data, self.dataB)
    self.widget.attr_combine_data = domainA.class_vars[0]
    self.widget.attr_combine_extra = domainB.class_vars[0]
    self.widget.controls.merging.buttons[2].click()
    self.assertTablesEqual(self.get_output(self.widget.Outputs.data), result)
