test_class.declarator: gcHistory = ImmutableMap.<String, GCGeneration>builder()
          .put("00w", newGCGeneration(0, 0, false))
  
          // First compaction. Always FULL
          .put("11c", newGCGeneration(1, 1, true))
          .put("11w", newGCGeneration(1, 1, false))
  
          // TAIL compaction
          .put("21c", newGCGeneration(2, 1, true))
          .put("21w", newGCGeneration(2, 1, false))
  
          // TAIL compaction
          .put("31c", newGCGeneration(3, 1, true))
          .put("31w", newGCGeneration(3, 1, false))
  
          // FULL compaction
          .put("42c", newGCGeneration(4, 2, true))
          .put("42w", newGCGeneration(4, 2, false))
  
          // TAIL compaction
          .put("52c", newGCGeneration(5, 2, true))
          .put("52w", newGCGeneration(5, 2, false))
  
          // TAIL compaction
          .put("62c", newGCGeneration(6, 2, true))
          .put("62w", newGCGeneration(6, 2, false))
  
          // FULL compaction
          .put("73c", newGCGeneration(7, 3, true))
          .put("73w", newGCGeneration(7, 3, false))
  
          .build()
test_class.modifier: private static final
test_class.original_string: private static final Map<String, GCGeneration> gcHistory = ImmutableMap.<String, GCGeneration>builder()
          .put("00w", newGCGeneration(0, 0, false))
  
          // First compaction. Always FULL
          .put("11c", newGCGeneration(1, 1, true))
          .put("11w", newGCGeneration(1, 1, false))
  
          // TAIL compaction
          .put("21c", newGCGeneration(2, 1, true))
          .put("21w", newGCGeneration(2, 1, false))
  
          // TAIL compaction
          .put("31c", newGCGeneration(3, 1, true))
          .put("31w", newGCGeneration(3, 1, false))
  
          // FULL compaction
          .put("42c", newGCGeneration(4, 2, true))
          .put("42w", newGCGeneration(4, 2, false))
  
          // TAIL compaction
          .put("52c", newGCGeneration(5, 2, true))
          .put("52w", newGCGeneration(5, 2, false))
  
          // TAIL compaction
          .put("62c", newGCGeneration(6, 2, true))
          .put("62w", newGCGeneration(6, 2, false))
  
          // FULL compaction
          .put("73c", newGCGeneration(7, 3, true))
          .put("73w", newGCGeneration(7, 3, false))
  
          .build();
test_class.type: Map<String, GCGeneration>
test_class.var_name: gcHistory
test_class.file: oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/ReclaimersTest.java
test_class.identifier: ReclaimersTest
test_case.body: @Test
      public void testOldReclaimer() {
          // 1 retained generation
          assertReclaim(newOldReclaimer(TAIL,
              newGCGeneration(0, 0, false), 1));
          assertReclaim(newOldReclaimer(FULL,
              newGCGeneration(1, 1, false), 1),
              "00w");
          assertReclaim(newOldReclaimer(TAIL,
              newGCGeneration(2, 1, false), 1),
              "00w", "11w");
          assertReclaim(newOldReclaimer(TAIL,
              newGCGeneration(3, 1, false), 1),
              "00w", "11w", "21w");
          assertReclaim(newOldReclaimer(FULL,
              newGCGeneration(4, 2, false), 1),
              "00w", "11w", "11c", "21w", "21c", "31w", "31c");
          assertReclaim(newOldReclaimer(TAIL,
              newGCGeneration(5, 2, false), 1),
              "00w", "11w", "11c", "21w", "21c", "31w", "31c", "42w");
          assertReclaim(newOldReclaimer(TAIL,
              newGCGeneration(6, 2, false), 1),
              "00w", "11w", "11c", "21w", "21c", "31w", "31c", "42w", "52w");
          assertReclaim(newOldReclaimer(FULL,
              newGCGeneration(7, 3, false), 1),
              "00w", "11w", "11c", "21w", "21c", "31w", "31c", "42w", "42c", "52w", "52c", "62w", "62c");
  
          // 2 retained generation
          assertReclaim(newOldReclaimer(TAIL,
              newGCGeneration(0, 0, false), 2));
          assertReclaim(newOldReclaimer(FULL,
              newGCGeneration(1, 1, false), 2));
          assertReclaim(newOldReclaimer(TAIL,
              newGCGeneration(2, 1, false), 2),
              "00w");
          assertReclaim(newOldReclaimer(TAIL,
              newGCGeneration(3, 1, false), 2),
              "00w", "11w");
          assertReclaim(newOldReclaimer(FULL,
              newGCGeneration(4, 2, false), 2),
              "00w", "11w", "21w");
          assertReclaim(newOldReclaimer(TAIL,
              newGCGeneration(5, 2, false), 2),
              "00w", "11w", "11c", "21w", "21c", "31w", "31c");
          assertReclaim(newOldReclaimer(TAIL,
              newGCGeneration(6, 2, false), 2),
              "00w", "11w", "11c", "21w", "21c", "31w", "31c", "42w");
          assertReclaim(newOldReclaimer(FULL,
              newGCGeneration(7, 3, false), 2),
              "00w", "11w", "11c", "21w", "21c", "31w", "31c", "42w", "52w");
      }
test_case.class_method_signature: ReclaimersTest.testOldReclaimer()
test_case.full_signature: @Test public void testOldReclaimer()
test_case.identifier: testOldReclaimer
test_case.invocations: assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration assertReclaim newOldReclaimer newGCGeneration
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testOldReclaimer()
focal_class.file: oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/Reclaimers.java
focal_class.identifier: Reclaimers
focal_class.class_method_signature: Reclaimers.Reclaimers()
focal_class.full_signature: private  Reclaimers()
focal_class.identifier: Reclaimers
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  Reclaimers()
focal_class.class_method_signature: Reclaimers.newOldReclaimer(
              @NotNull GCType lastGCType,
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_class.full_signature: static Predicate<GCGeneration> newOldReclaimer(
              @NotNull GCType lastGCType,
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_class.identifier: newOldReclaimer
focal_class.modifiers: static
focal_class.parameters: (
              @NotNull GCType lastGCType,
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_class.return: Predicate<GCGeneration>
focal_class.signature: Predicate<GCGeneration> newOldReclaimer(
              @NotNull GCType lastGCType,
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_class.class_method_signature: Reclaimers.newOldFullReclaimer(
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_class.full_signature: private static Predicate<GCGeneration> newOldFullReclaimer(
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_class.identifier: newOldFullReclaimer
focal_class.modifiers: private static
focal_class.parameters: (
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_class.return: Predicate<GCGeneration>
focal_class.signature: Predicate<GCGeneration> newOldFullReclaimer(
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_class.class_method_signature: Reclaimers.newOldTailReclaimer(
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_class.full_signature: private static Predicate<GCGeneration> newOldTailReclaimer(
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_class.identifier: newOldTailReclaimer
focal_class.modifiers: private static
focal_class.parameters: (
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_class.return: Predicate<GCGeneration>
focal_class.signature: Predicate<GCGeneration> newOldTailReclaimer(
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_class.class_method_signature: Reclaimers.newExactReclaimer(@NotNull final GCGeneration referenceGeneration)
focal_class.full_signature: static Predicate<GCGeneration> newExactReclaimer(@NotNull final GCGeneration referenceGeneration)
focal_class.identifier: newExactReclaimer
focal_class.modifiers: static
focal_class.parameters: (@NotNull final GCGeneration referenceGeneration)
focal_class.return: Predicate<GCGeneration>
focal_class.signature: Predicate<GCGeneration> newExactReclaimer(@NotNull final GCGeneration referenceGeneration)
focal_method.body: static Predicate<GCGeneration> newOldReclaimer(
              @NotNull GCType lastGCType,
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations) {
  
          switch (checkNotNull(lastGCType)) {
              case FULL:
                  return newOldFullReclaimer(referenceGeneration, retainedGenerations);
              case TAIL:
                  return newOldTailReclaimer(referenceGeneration, retainedGenerations);
              default:
                  throw new IllegalArgumentException("Invalid gc type: " + lastGCType);
          }
      }
focal_method.class_method_signature: Reclaimers.newOldReclaimer(
              @NotNull GCType lastGCType,
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_method.full_signature: static Predicate<GCGeneration> newOldReclaimer(
              @NotNull GCType lastGCType,
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_method.identifier: newOldReclaimer
focal_method.invocations: checkNotNull newOldFullReclaimer newOldTailReclaimer
focal_method.modifiers: static
focal_method.parameters: (
              @NotNull GCType lastGCType,
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)
focal_method.return: Predicate<GCGeneration>
focal_method.signature: Predicate<GCGeneration> newOldReclaimer(
              @NotNull GCType lastGCType,
              @NotNull final GCGeneration referenceGeneration,
              int retainedGenerations)