anchor.diff:            ..type(SimpleComponent)
             ..type(ExprAttrComponent)
             ..type(SayHelloFilter);
  -    });
  -
  -    beforeEach(inject((TestBed tb) => _ = tb));
  -
  -    it('should compile basic hello world', inject(() {
  -      var element = $(_.compile('<div ng-bind="name"></div>'));
  -
  -      _.rootScope.context['name'] = 'angular';
  -
  -      expect(element.text()).toEqual('');
  -      _.rootScope.apply();
  -      expect(element.text()).toEqual('angular');
  -    }));
  -
  -    it('should not throw on an empty list', inject(() {
  -      _.compile([]);
  -    }));
  -
  -    it('should compile a comment with no directives around', inject(() {
  -      var element = $(_.compile('<div><!-- comment --></div>'));
  -      expect(element.html()).toEqual('<!-- comment -->');
  -    }));
  -
  -    it('should compile a comment when the parent has a directive', inject(() {
  -      var element = $(_.compile('<div ng-show="true"><!-- comment --></div>'));
  -      expect(element.html()).toEqual('<!-- comment -->');
  -    }));
  -
  -    it('should compile a directive in a child', inject(() {
  -      var element = $(_.compile('<div><div ng-bind="name"></div></div>'));
  -
  -      _.rootScope.context['name'] = 'angular';
  -
  -      expect(element.text()).toEqual('');
  -      _.rootScope.apply();
  -      expect(element.text()).toEqual('angular');
  -    }));
  -
  -    it('should compile repeater', inject(() {
  -      var element = $(_.compile('<div><div ng-repeat="item in items" ng-bind="item"></div></div>'));
  -
  -      _.rootScope.context['items'] = ['A', 'b'];
  -      expect(element.text()).toEqual('');
  -
  -      _.rootScope.apply();
  -      expect(element.text()).toEqual('Ab');
  -
  -      _.rootScope.context['items'] = [];
  -      _.rootScope.apply();
  -      expect(element.html()).toEqual('<!--ANCHOR: [ng-repeat]=item in items-->');
  -    }));
  -
  -    it('should compile repeater with children', inject((Compiler $compile) {
  -      var element = $(_.compile('<div><div ng-repeat="item in items"><div ng-bind="item"></div></div></div>'));
  -
  -      _.rootScope.context['items'] = ['A', 'b'];
  -
  -      expect(element.text()).toEqual('');
  -      _.rootScope.apply();
  -      expect(element.text()).toEqual('Ab');
  -
  -      _.rootScope.context['items'] = [];
  -      _.rootScope.apply();
  -      expect(element.html()).toEqual('<!--ANCHOR: [ng-repeat]=item in items-->');
  -    }));
  -
  -    it('should compile text', inject((Compiler $compile) {
  -      var element = $(_.compile('<div>{{name}}<span>!</span></div>'));
  -      _.rootScope.context['name'] = 'OK';
  -
  -      microLeap();
  -      _.rootScope.apply();
  -      expect(element.text()).toEqual('OK!');
  -    }));
  -
  -    it('should compile nested repeater', inject((Compiler $compile) {
  -      var element = $(_.compile(
  -          '<div>' +
  -          '<ul ng-repeat="lis in uls">' +
  -          '<li ng-repeat="li in lis">{{li}}</li>' +
  -          '</ul>' +
  -          '</div>'));
  -
  -      _.rootScope.context['uls'] = [['A'], ['b']];
  -
  -      _.rootScope.apply();
  -      expect(element.text()).toEqual('Ab');
  -    }));
  -
  -    it('should compile two directives with the same selector', inject((Logger log) {
  -      var element = $(_.compile('<div two-directives></div>'));
  -
  -      _.rootScope.apply();
  -
  -      expect(log).toEqual(['OneOfTwo', 'TwoOfTwo']);
  -    }));
  -
  -    it('should compile a directive that ignores children', inject((Logger log) {
  -      // The ng-repeat comes first, so it is not ignored, but the children *are*
  -      var element = $(_.compile('<div ng-repeat="i in [1,2]" ignore-children><div two-directives></div></div>'));
  -
  -      _.rootScope.apply();
  -
  -      expect(log).toEqual(['Ignore', 'Ignore']);
  -    }));
  -
  -
  -    describe("interpolation", () {
  -      it('should interpolate attribute nodes', inject(() {
  -        var element = $(_.compile('<div test="{{name}}"></div>'));
  -
  -        _.rootScope.context['name'] = 'angular';
  -
  -        _.rootScope.apply();
  -        expect(element.attr('test')).toEqual('angular');
  -      }));
  -
  -      it('should interpolate text nodes', inject(() {
  -        var element = $(_.compile('<div>{{name}}</div>'));
  -
  -        _.rootScope.context['name'] = 'angular';
  -
  -        _.rootScope.apply();
  -        expect(element.text()).toEqual('angular');
  -      }));
  -    });
  -
  -
  -    describe('components', () {
  +      });
   
         it('should select on element', async(inject((NgZone zone) {
           var element = $(_.compile(r'<div><simple></simple></div>'));
  
positive.code:           ..type(TwoOfTwoDirectives)
            ..type(MyController)
            ..type(MyParentController)
            ..type(MyChildController)
            ..type(SimpleComponent)
            ..type(CamelCaseMapComponent)
            ..type(IoComponent)
  
negative.code:     TestBed _;
  
      beforeEachModule((Module module) {
        module
            ..type(TabComponent)
            ..type(PublishTypesAttrDirective)
  