describe('pixi/display/DisplayObjectContainer', function () {
    'use strict';
    var expect = chai.expect;
    var DisplayObjectContainer = PIXI.DisplayObjectContainer;
    it('Module exists', function () {
        expect(DisplayObjectContainer).to.be.a('function');
    });
    it('Confirm new instance', function () {
        var obj = new DisplayObjectContainer();
        pixi_display_DisplayObjectContainer_confirmNew(obj);
        expect(obj).to.have.property('hitArea', null);
        expect(obj).to.have.property('interactive', false);
        expect(obj).to.have.property('renderable', false);
        expect(obj).to.have.property('stage', null);
    });
    it('Gets child index', function() {
        var container = new PIXI.DisplayObjectContainer();
        var children = [];
        for (var i = 0; i < 10; i++) {
            var child = new PIXI.DisplayObject();
            children.push(child);
            container.addChild(child);
        }
        for (i = 0; i < children.length; i++) {
            expect(i).to.eql(container.getChildIndex(children[i]));
        }
    });
    it('throws error when trying to get index of not a child', function() {
        var container = new PIXI.DisplayObjectContainer();
        var child = new PIXI.DisplayObject();
        expect(function() { container.getChildIndex(child); }).to.throw();
    });
    it('Sets child index', function() {
        var container = new PIXI.DisplayObjectContainer();
        var children = [];
        for (var i = 0; i < 10; i++) {
            var child = new PIXI.DisplayObject();
            children.push(child);
            container.addChild(child);
        }
        children.reverse();
        for (i = 0; i < children.length; i++) {
            container.setChildIndex(children[i], i);
            expect(i).to.eql(container.getChildIndex(children[i]));
        }
    });
      it('throws error when trying to set incorect index', function() {
        var container = new PIXI.DisplayObjectContainer();
        var child = new PIXI.DisplayObject();
        container.addChild(child);
        expect(function() { container.setChildIndex(child, -1); }).to.throw();
        expect(function() { container.setChildIndex(child, 1); }).to.throw();
    });
});