code: def fit(self, Xs=None, ys=None, Xt=None, yt=None):
          
  
          # check the necessary inputs parameters are here
          if check_params(Xs=Xs, Xt=Xt):
  
              # pairwise distance
              self.cost_ = dist(Xs, Xt, metric=self.metric)
              self.cost_ = cost_normalization(self.cost_, self.norm)
  
              if (ys is not None) and (yt is not None):
  
                  if self.limit_max != np.infty:
                      self.limit_max = self.limit_max * np.max(self.cost_)
  
                  # assumes labeled source samples occupy the first rows
                  # and labeled target samples occupy the first columns
                  classes = [c for c in np.unique(ys) if c != -1]
                  for c in classes:
                      idx_s = np.where((ys != c) & (ys != -1))
                      idx_t = np.where(yt == c)
  
                      # all the coefficients corresponding to a source sample
                      # and a target sample :
                      # with different labels get a infinite
                      for j in idx_t[0]:
                          self.cost_[idx_s[0], j] = self.limit_max
  
              # distribution estimation
              self.mu_s = self.distribution_estimation(Xs)
              self.mu_t = self.distribution_estimation(Xt)
  
              # store arrays of samples
              self.xs_ = Xs
              self.xt_ = Xt
  
          return self
docs: Build a coupling matrix from source and target sets of samples
          (Xs, ys) and (Xt, yt)
  
          Parameters
          ----------
          Xs : array-like, shape (n_source_samples, n_features)
              The training input samples.
          ys : array-like, shape (n_source_samples,)
              The class labels
          Xt : array-like, shape (n_target_samples, n_features)
              The training input samples.
          yt : array-like, shape (n_target_samples,)
              The class labels. If some target samples are unlabeled, fill the
              yt's elements with -1.
  
              Warning: Note that, due to this convention -1 cannot be used as a
              class label
  
          Returns
          -------
          self : object
              Returns self.