in botorch/utils/containers.py [0:0]
def __eq__(self, other: TrainingData) -> bool:
# Check for `None` Yvars and unequal attribute lengths upfront.
if self.Yvars is None or other.Yvars is None:
if not (self.Yvars is other.Yvars is None):
return False
else:
if len(self.Yvars) != len(other.Yvars):
return False
if len(self.Xs) != len(other.Xs) or len(self.Ys) != len(other.Ys):
return False
return ( # Deep-check equality of attributes.
all(
torch.equal(self_X, other_X)
for self_X, other_X in zip(self.Xs, other.Xs)
)
and all(
torch.equal(self_Y, other_Y)
for self_Y, other_Y in zip(self.Ys, other.Ys)
)
and (
self.Yvars is other.Yvars is None
or all(
torch.equal(self_Yvar, other_Yvar)
for self_Yvar, other_Yvar in zip(self.Yvars, other.Yvars)
)
)
)