test('it responds to array property value changes', function(assert) {
    let array = emberA([
      EmberObject.create({ prop: false }),
      EmberObject.create({ prop: true })
    ]);

    let { subject } = compute({
      computed: find('*****@*****.**', item => {
        return get(item, 'prop');
      }),
      properties: {
        array
      }
    });

    assert.strictEqual(subject.get('computed'), array[1]);

    array.set('0.prop', true);
    array.set('1.prop', false);

    assert.strictEqual(subject.get('computed'), array[0]);

    array.set('0.prop', false);
    array.pushObject(EmberObject.create({ prop: true }));

    assert.strictEqual(subject.get('computed'), array[2]);
  });
 test('it handles native arrays', function(assert) {
   compute({
     assert,
     computed: find('array', result => result === 2),
     properties: {
       array: [1, 2]
     },
     strictEqual: 2
   });
 });
 test('composable: it returns item if found', function(assert) {
   compute({
     assert,
     computed: find(
       raw(emberA([1, 2])),
       result => result === 2
     ),
     strictEqual: 2
   });
 });
 test('it returns item if found', function(assert) {
   compute({
     assert,
     computed: find('array', result => result === 2),
     properties: {
       array: emberA([1, 2])
     },
     strictEqual: 2
   });
 });
 test('it returns undefined if not found', function(assert) {
   compute({
     assert,
     computed: find('array', result => result === 3),
     properties: {
       array: emberA([1, 2])
     },
     strictEqual: undefined
   });
 });
  test('it returns identity if not array type', function(assert) {
    let array = {};

    compute({
      assert,
      computed: find('array'),
      properties: {
        array
      },
      strictEqual: array
    });
  });
  test('doesn\'t calculate when unnecessary', function(assert) {
    let callback = sinon.spy();

    compute({
      computed: find(
        undefined,
        computed(callback)
      )
    });

    assert.notOk(callback.called);
  });