def METHOD_NAME(self):
    my_vocs = VOCS(
        variables={"x": [0, 1]},
        objectives={"y": "MAXIMIZE"},
        constraints={"c": ["LESS_THAN", 0]},
    )
    # specify a periodic kernel for each output (objectives and constraints)
    covar_module = {"y1": ScaleKernel(PeriodicKernel())}
    model_constructor = StandardModelConstructor(covar_modules=covar_module)
    generator = ExpectedImprovementGenerator(
        vocs=my_vocs, model_constructor=model_constructor
    )
    # define training data to pass to the generator
    train_x = torch.tensor((0.2, 0.5, 0.6))
    train_y = 5.0 * torch.cos(2 * 3.14 * train_x + 0.25)
    train_c = 2.0 * torch.sin(2 * 3.14 * train_x + 0.25)
    training_data = pd.DataFrame(
        {"x": train_x.numpy(), "y": train_y.numpy(), "c": train_c}
    )
    generator.add_data(training_data)
    generator.train_model()