def METHOD_NAME():
    rng = random.Random(42)
    dataset = iter(synth.Sine(seed=8, classification_function=0, has_noise=True))
    model = tree.HoeffdingAdaptiveTreeClassifier(
        leaf_prediction="mc",
        grace_period=10,
        drift_detector=drift.ADWIN(0.1),
        delta=0.1,
        drift_window_threshold=2,
        seed=42,
        max_depth=3,
    )
    for i in range(1000):
        if i % 200 == 0 and i > 0:
            dataset = iter(
                synth.Sine(seed=8, classification_function=rng.randint(0, 3), has_noise=False)
            )
        x, y = next(dataset)
        model.learn_one(x, y)
    assert model._n_switch_alternate_trees > 0