anchor.diff:  
   import 'dart:async';
   import 'package:unittest/unittest.dart';
  -import 'package:observe/observe.dart';
   
   import 'package:nv/src/config.dart';
   import 'package:nv/src/controllers.dart';
  
positive.code: }
  
  Future<AppController> _whenUpdated(AppController controller) {
    return new Future(() {
      if(controller.notes.deliverChanges()) {
        return _whenUpdated(controller);
      } else {
        return controller;
      }
    });
  }
  
  Future _expectFirstRun(AppController controller) {
  
negative.code:     _testAppController('simple', storage, _testSimple);
  
      _testAppController('initial search', storage, _initialSearch);
  
      _testAppController('select item, edit, sort=stable', storage,
          (AppController ac) {
        _expectFirstRun(ac);
  
        expect(ac.notes, hasLength(INITIAL_NOTES.length));
  
        var expectedSortedTitles = INITIAL_NOTES.keys.toList()
            ..sort();
  
        var controllerTitles = ac.notes
            .map((Selectable<Note> s) => s.value.title)
            .toList();
  
        expect(controllerTitles, orderedEquals(expectedSortedTitles));
      });
  
    });
  }
  