def METHOD_NAME(self):
    # Alter collagen domain to have Continuous/String/TimeVariables in metas
    c_domain = self.collagen.domain
    str_var = Orange.data.StringVariable.make(name="stringtest")
    time_var = Orange.data.TimeVariable.make(name="timetest")
    n_domain = Orange.data.Domain(c_domain.attributes,
                                  c_domain.class_vars,
                                  [Orange.data.ContinuousVariable("con"), str_var, time_var])
    collagen = self.collagen.transform(n_domain)
    with collagen.unlocked(collagen.metas):
        collagen.metas[:, 0] = np.atleast_2d(collagen.X[:, 0])
        collagen.metas[:, 1] = ["string"] * len(collagen)
        collagen.metas[:, 2] = [1560.3] * len(collagen)
    self.send_signal("Data", collagen)
    gvar = self.widget.group_var = collagen.domain.class_var
    self.widget.grouping_changed()
    out = self.get_output("Averages")
    self.assertEqual(out.X.shape[0], len(gvar.values))
    self.assertEqual(out.X.shape[1], collagen.X.shape[1])
    # First 195 rows are labelled "collagen"
    collagen_avg = np.mean(collagen.X[:195], axis=0)
    np.testing.assert_equal(out.X[1,], collagen_avg)
    # ContinuousVariable averaging in metas
    # assert_allclose is due to float rounding error
    np.testing.assert_allclose(out[0, 0], out[0, -1])
    # Other variables keep first if all the same
    self.assertEqual(collagen[0, gvar], out[1, gvar])
    self.assertEqual(collagen[0, str_var], out[1, str_var])
    np.testing.assert_allclose(collagen[0, time_var], out[1, time_var])