Seems to me that splitting creates triangles for train and test.
Looking at the reference document, I assumed that this is not the expected behavior...
...
yield (
indices[X.triangle.valuation <= valuation_dates[test_start]], # should be '<' instead of '<=' so that training set consists of k-dim triangle; for testing the first next diagonal is concatenated
indices[X.triangle.valuation <= valuation_dates[test_start]],
)