<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _run_arguement_object_fits(self):
 """ This function fits objects passed to Multivar, guarantees wave ordering in Catalog object and DesignMatrix object matches up """

        # run fits
        # fit catalog object
        Y_dict = self._catalog_object.get_transformed_Y()
        # fit designmatrix object
        X = self._designmatrix_object.get_matrix()
        Xcol_names = self._designmatrix_object.get_columnnames()
        row_names = self._designmatrix_object.get_rownames()
        # make sure waveforms are matched
        # loop through Xrow_names, use as key for Y_dict, populate Y_matrix
        Y = np.empty((len(row_names),len(Y_dict[Y_dict.keys()[0]])))

        # check if waveforms are complex valued.  if so, instantiate Y as complex type
        if sum(np.iscomplex(Y_dict[Y_dict.keys()[0]])):
            # then it is complex
            Y = np.empty((len(row_names),len(Y_dict[Y_dict.keys()[0]]))).astype(np.complex)

        for i in np.arange(0,len(row_names)):
            Y[i,:] = Y_dict[row_names[i]]
        # fit basis object
        A = self._basis_object.fit_transform(Y)
        return Y, X, A, Xcol_names, row_names