def METHOD_NAME(self):
    # Generate anomaly data arrays
    self._rng = np.random.default_rng(self.seed)
    self.y = np.zeros(self.n_samples)
    self.X = np.column_stack(
        [
            np.sin(np.arange(self.n_samples) / 4.0)
            + self._rng.normal(size=self.n_samples) * self.noise,
            np.cos(np.arange(self.n_samples) / 4.0)
            + self._rng.normal(size=self.n_samples) * self.noise,
        ]
    )
    if self.contextual:
        # contextual anomaly indices
        contextual_anomalies = self._rng.choice(
            self.n_samples - self.shift, self.n_contextual, replace=self.replace
        )
        # set contextual anomalies
        contextual_idx = contextual_anomalies + self.shift
        contextual_idx[contextual_idx >= self.n_samples] -= self.n_samples
        self.X[contextual_idx, 1] = self.X[contextual_anomalies, 0]
    # Anomaly indices
    anomalies_idx = self._rng.choice(self.n_samples, self.n_anomalies, replace=self.replace)
    self.X[anomalies_idx, 1] = (
        np.sin(self._rng.choice(self.n_anomalies, replace=self.replace))
        + self._rng.normal(size=self.n_anomalies) * self.noise
        + 2.0
    )
    # Mark sample as anomalous
    self.y[anomalies_idx] = 1