anchor.diff:  
       lb2.setRange(5, 6, [88, 99].take(2), 1);
       expect(lb2, [1, 2, 3, 9, 8, 99]);
  +  });
   
  -    expect(() { (new PbList<int>() as dynamic).add('hello'); }, throws);
  +  test('PbList validates items', () {
  +    expect(() {
  +      (new PbList<int>() as dynamic).add('hello');
  +    }, throws);
  +  });
   
  +  test('Pbint32List validates items', () {
       PbSint32List listSint32 = new PbSint32List();
   
  -    expect(() { listSint32.add(-2147483649); }, throwsArgumentError);
  +    expect(() {
  +      listSint32.add(-2147483649);
  +    }, throwsArgumentError);
   
  -    expect(() { listSint32.add(-2147483648); },
  -        returnsNormally,
  -        reason: 'could not add min_sint32 to PbSint32List');
  +    expect(() {
  +      listSint32.add(-2147483648);
  +    }, returnsNormally, reason: 'could not add min_sint32 to PbSint32List');
   
  -    expect(() { listSint32.add(2147483648); }, throwsArgumentError);
  +    expect(() {
  +      listSint32.add(2147483648);
  +    }, throwsArgumentError);
   
  -    expect(() { listSint32.add(2147483647); },
  -        returnsNormally,
  -        reason: 'could not add max_sint32 to PbSint32List');
  +    expect(() {
  +      listSint32.add(2147483647);
  +    }, returnsNormally, reason: 'could not add max_sint32 to PbSint32List');
  +  });
   
  +  test('PBUint32List validates items', () {
       PbUint32List listUint32 = new PbUint32List();
   
  -    expect(() { listUint32.add(-1); }, throwsArgumentError);
  +    expect(() {
  +      listUint32.add(-1);
  +    }, throwsArgumentError);
   
  -    expect(() { listUint32.add(0); },
  -        returnsNormally,
  -        reason: 'could not add 0 PbSint32List');
  +    expect(() {
  +      listUint32.add(0);
  +    }, returnsNormally, reason: 'could not add 0 PbSint32List');
   
  -    expect(() { listUint32.add(4294967296); }, throwsArgumentError);
  +    expect(() {
  +      listUint32.add(4294967296);
  +    }, throwsArgumentError);
   
  -    expect(() { listUint32.add(4294967295); },
  -        returnsNormally,
  -        reason: 'could not add max_uint32 to PbUint32List');
  +    expect(() {
  +      listUint32.add(4294967295);
  +    }, returnsNormally, reason: 'could not add max_uint32 to PbUint32List');
  +  });
   
  +  test('PbFloatList validates items', () {
       PbFloatList listFloat = new PbFloatList();
   
  -    expect(() { listFloat.add(3.4028234663852886E39); }, throwsArgumentError);
  +    expect(() {
  +      listFloat.add(3.4028234663852886E39);
  +    }, throwsArgumentError);
   
  -    expect(() { listFloat.add(-3.4028234663852886E39); }, throwsArgumentError);
  +    expect(() {
  +      listFloat.add(-3.4028234663852886E39);
  +    }, throwsArgumentError);
   
  -    expect(() { listFloat.add(3.4028234663852886E38); },
  -        returnsNormally,
  -        reason: 'could not add max_float to PbUint64List');
  +    expect(() {
  +      listFloat.add(3.4028234663852886E38);
  +    }, returnsNormally, reason: 'could not add max_float to PbUint64List');
   
  -    expect(() { listFloat.add(-3.4028234663852886E38); },
  -        returnsNormally,
  -        reason: 'could not add max_float to PbUint64List');
  +    expect(() {
  +      listFloat.add(-3.4028234663852886E38);
  +    }, returnsNormally, reason: 'could not add max_float to PbUint64List');
     });
   }
  
positive.code:     expect(lb1.last, 6);
  
      int count = 0;
      lb1.forEach((int i) {count += i;});
      expect(count, 108);
  
      List<int> evens = new List<int>.from(
          lb1.where((int i) { return i % 2 == 0; }));
      expect(evens, [0, 2, 6]);
  
      expect(lb1.any((int i) { return i % 2 == 0; }), isTrue);
      expect(lb1.every((int i) { return i >= 0; }), isTrue);
  
      lb1.clear();
      expect(lb1, []);
  
      PbList<int> lb2 = new PbList();
  
      lb2.addAll([1, 2, 3, 4, 5, 6, 7, 8, 9]);
  
negative.code: import 'package:test/test.dart';
  
  void main() {
    test('testPbList handles basic operations', () {
      PbList<int> lb1 = new PbList();
      expect(lb1, []);
  
  