anchor.diff:          return cache
               .get(1)
               .then((value) => expect(value, '1', reason: 'value is loaded'))
  -            .then((_) => offset = new Duration(seconds: 20))
  +            .then((_) => offset = const Duration(seconds: 20))
               .then((_) => cache.getIfPresent(1))
               .then((value) => expect(value, '1', reason: 'value is still present'))
  -            .then((_) => offset = new Duration(seconds: 41))
  +            .then((_) => offset = const Duration(seconds: 41))
               .then((_) => cache.getIfPresent(1))
               .then((value) => expect(value, isNull, reason: 'value has expried'))
               .then((_) => cache.size())
  
positive.code: 
    test('$name', () async {
      var cache = newCache(immediateLoader);
      load.forEach((key) => cache.get(key));
      present.forEach((key) async =>
          expect(await cache.getIfPresent(key), '$key', reason: '$key should be present'));
      absent.forEach((key) async =>
          expect(await cache.getIfPresent(key), isNull, reason: '$key should be absent'));
    });
  }
  
  
negative.code:         return cache
              .get(1)
              .then((value) => expect(value, '1', reason: 'value is loaded'))
              .then((_) => offset = const Duration(seconds: 20))
              .then((_) => cache.getIfPresent(1))
              .then((value) => expect(value, '1', reason: 'value is still present'))
              .then((_) => offset = const Duration(seconds: 21))
              .then((_) => cache.getIfPresent(1))
              .then((value) => expect(value, isNull, reason: 'value has expried'))
              .then((_) => cache.size())
  