code: def test_with_classes_timeline_all_attributes(self):
      exps = []
  
      # class order is [11, 3, 4, 4]
      # exp 0
      tx = torch.rand(10, 17)
      ty = torch.tensor([11 for _ in range(10)])
      data = _make_taskaware_tensor_classification_dataset(tx, ty)
      exps.append(DatasetExperience(dataset=data))
  
      # exp 1
      tx = torch.rand(10, 17)
      ty = torch.tensor([3 for _ in range(10)])
      data = _make_taskaware_tensor_classification_dataset(tx, ty)
      exps.append(DatasetExperience(dataset=data))
  
      # exp 2
      tx = torch.rand(10, 17)
      ty = torch.tensor([4 for _ in range(10)])
      data = _make_taskaware_tensor_classification_dataset(tx, ty)
      exps.append(DatasetExperience(dataset=data))
  
      # exp 3
      tx = torch.rand(10, 17)
      ty = torch.tensor([4 for _ in range(10)])
      data = _make_taskaware_tensor_classification_dataset(tx, ty)
      exps.append(DatasetExperience(dataset=data))
  
      stream = EagerCLStream(name="train", exps=exps)
      bm = CLScenario([stream])
      bm = with_classes_timeline(bm)
      assert len(bm.streams) == 1
      stream = bm.train_stream
  
      # class order is [11, 3, 4, 4]
      # exp 0
      exp = stream[0]
      assert exp.classes_in_this_experience == {11}
      assert len(exp.previous_classes) == 0
      assert exp.classes_seen_so_far == {11}
      assert exp.future_classes == {4, 3}
  
      # exp 1
      exp = stream[1]
      assert exp.classes_in_this_experience == {3}
      assert exp.previous_classes == {11}
      assert exp.classes_seen_so_far == {11, 3}
      assert exp.future_classes == {4}
  
      # exp 2
      exp = stream[2]
      assert exp.classes_in_this_experience == {4}
      assert exp.previous_classes == {11, 3}
      assert exp.classes_seen_so_far == {11, 3, 4}
      assert len(exp.future_classes) == 0
  
      # exp 3
      exp = stream[3]
      assert exp.classes_in_this_experience == {4}
      assert exp.previous_classes == {11, 3, 4}
      assert exp.classes_seen_so_far == {11, 3, 4}
      assert len(exp.future_classes) == 0
  
file_path: avalanche/tests/benchmarks/scenarios/test_experience_decorators.py
imports: import unittest
  import torch
  from avalanche.benchmarks import benchmark_from_datasets, EagerCLStream, CLScenario
  from avalanche.benchmarks import DatasetExperience
  from avalanche.benchmarks.scenarios.task_aware import with_task_labels
  from avalanche.benchmarks.scenarios.supervised import with_classes_timeline
  from avalanche.benchmarks.utils import _make_taskaware_tensor_classification_dataset
label_desc: Use image node_id 3 for calling the ExperienceDecoratorTests obj's underlying member method code with example usage: obj.test_with_classes_timeline_all_attributes() without return types