text: // @flow
  var fs = require('fs');
  import * as src from '../../../index';
  import UnmutableCompatible from './UnmutableCompatible-testutil';
  
  let files = {
      butLast: [],
      // chunkBy: [],
      // chunk: [],
      clear: [],
      clone: [],
      // concat: [],
      count: [],
      // deal: [],
      // defaults: [],
      // deleteAll: [],
      deleteIn: [['def', 'ghi']],
      delete: ['abc'],
      doIf: [() => true, _ => _, _ => _],
      entries: [],
      // entriesReverse: [],
      entryArray: [],
      equals: [123],
      every: [_ => _],
      filter: [_ => _],
      filterNot: [_ => _],
      findEntry: [_ => _],
      findIndex: [_ => _],
      find: [_ => _],
      findKey: [_ => _],
      // findLastEntry: [],
      // findLastIndex: [],
      // findLast: [],
      // findLastKey: [],
      first: [],
      // flatMap: [],
      // flatten: [],
      forEach: [_ => _],
      getIn: [['def', 'ghi']],
      get: ['abc'],
      // groupBy: [],
      // hashCode: [],
      hasIn: [['def', 'ghi']],
      has: ['abc'],
      identity: [],
      includes: [123],
      indexOf: [123],
      // insert: [],
      // interpose: [],
      isEmpty: [],
      isNotEmpty: [],
      // join: [],
      keyArray: [],
      // keyBy: [],
      keyOf: [123],
      keys: [],
      // lastIndexOf: [],
      last: [],
      // lastKeyOf: [],
      log: [],
      map: [_ => _],
      maxBy: [_ => _],
      max: [],
      // mergeDeepIn: [],
      // mergeDeep: [],
      // mergeDeepWith: [],
      // mergeIn: [],
      // merge: [],
      // mergeWith: [],
      minBy: [_ => _],
      min: [],
      // move: [],
      notEquals: [123],
      // omit: [],
      // pick: [['abc']],
      // pivot: [],
      // pop: [],
      // push: [],
      reduce: [_ => _, {}],
      // reduceRight: [],
      // rename: [],
      rest: [],
      // reverse: [],
      // rotate: [],
      setIn: [['def', 'ghi'], 789],
      set: ['abc', 789],
      // setSize: [],
      // shallowEquals: [123],
      shallowToJS: [],
      // shift: [],
      size: [],
      // skip: [],
      // skipLast: [],
      // skipUntil: [],
      // skipWhile: [],
      // slice: [],
      some: [_ => _],
      // sortBy: [],
      // sort: [],
      // splice: [],
      // strictEquals: [],
      // swap: [],
      // take: [],
      // takeLast: [],
      // takeUntil: [],
      // takeWhile: [],
      // toArray: [],
      // toIndexed: [],
      // toJS: [],
      toJSON: [],
      // toKeyed: [],
      toObject: [],
      // uniqueBy: [],
      // unique: [],
      // unit: [],
      // unshift: [],
      updateIn: [['def', 'ghi'], _ => _],
      // updateInto: [],
      update: ['abc', _ => _],
      valueArray: [],
      values: [],
      // zipAll: [],
      // zip: [],
      // zipWith: []
  };
  
  let value = new UnmutableCompatible({
      abc: 123,
      def: {
          ghi: 456
      }
  });
  
  Object.keys(files).forEach((file) => {
      test(`Unmutable Compatible should be able to call ${file}`, () => {
          let fn = src[file](...files[file]);
          let passed = true;
          try {
              fn(value);
          } catch(e) {
              console.log(`Error running Unmutable Compatible ${file}:`, e.message);
              passed = false;
          }
          expect(passed).toBe(true);
      });
  });
  