anchor.diff:  import 'package:unittest/unittest.dart';
   import '../src/observe_test_utils.dart';
   
  +typedef ReadOnlyObservableList<E> ROOLFactory<E>(ObservableList<E> source);
  +
   void main() {
  +  sharedMain(_simpleFactory);
  +}
  +
  +ReadOnlyObservableList<int> _simpleFactory(ObservableList<int> source) {
  +  return new ReadOnlyObservableList(source);
  +}
  +
  +void sharedMain(ROOLFactory factory) {
     // TODO(jmesserly): need all standard List API tests.
   
     StreamSubscription sub;
  
positive.code: 
    observeTest('toString', () {
      var list = toObservable([1, 2, 3]);
      var rol = new ReadOnlyObservableList(list);
      expect(rol.toString(), '[1, 2, 3]');
    });
  
  
negative.code: 
      setUp(() {
        list = toObservable([1, 2, 3]);
        rol = factory(list);
        changes = null;
        sub = rol.changes.listen((records) {
          changes = records.where((r) => r.changes(_LENGTH)).toList();
  