"""Constructed teaching example, not market data or a trading backtest.
Run with Python 3: python3 train-only-preprocessing.py
"""
from statistics import mean

train = [10, 12, 14]
test = [100, 104]
train_mean = float(mean(train))
full_mean = float(mean(train + test))
transformed_test = [value - train_mean for value in test]

# Fit preprocessing on training data, then apply that fixed rule to test data.
assert train_mean == 12.0
assert full_mean == 48.0
assert transformed_test == [88.0, 92.0]
print(f"train mean = {train_mean}")
print(f"full mean = {full_mean}")
print(f"train-only transform = {transformed_test}")
