receiveArrayWithBasicTypes: function(arr) {
   assertEquals(4, arr.length);
   assertEquals('red panda', arr[0]);
   assertEquals(1.19, arr[1]);
   assertEquals(true, arr[2]);
   assertEquals(null, arr[3]);
 },
 receiveMapWithArrays: function(map) {
   var a1 = map.array1;
   var a2 = map.array2;
   assertEquals(3, a1.length);
   assertEquals(2, a2.length);
   assertEquals(3, a1[0]);
   assertEquals(9, a2[1]);
 },
 receiveArrayWithMaps: function(arr) {
   assertEquals(2, arr.length);
   var m1 = arr[0];
   var m2 = arr[1];
   assertEquals('m1v1', m1.m1k1);
   assertEquals('m1v2', m1.m1k2);
   assertEquals('m2v1', m2.m2k1);
 },
 receiveNestedArray: function(arr) {
   assertEquals(2, arr.length);
   assertEquals('level1', arr[0]);
   var arr2 = arr[1];
   assertEquals('level2', arr2[0]);
   var arr3 = arr2[1];
   assertEquals('level3', arr3[0]);
 },
 UIManager.measureLayout(C, A, shouldNotCallThisCallback, function(
   x,
   y,
   width,
   height,
 ) {
   assertEquals(50, width);
   assertEquals(150, height);
   assertEquals(150, x);
   assertEquals(150, y);
 });
  receiveMapAndArrayWithNullValues: function(map, array) {
    assertEquals(null, map.string);
    assertEquals(null, map.array);
    assertEquals(null, map.map);

    assertEquals(null, array[0]);
    assertEquals(null, array[1]);
    assertEquals(null, array[2]);
  },
 callMethod: function(methodName, expectedType, expectedJSON) {
   const result = TestModule[methodName]();
   assertEquals(expectedType, typeof result);
   assertEquals(expectedJSON, JSON.stringify(result));
 },
 function (x, y, width, height) {
   assertEquals(50, width);
   assertEquals(150, height);
   assertEquals(150, x);
   assertEquals(150, y);
 });
 UIManager.measure(C, function(a, b, width, height, x, y) {
   assertEquals(50, width);
   assertEquals(150, height);
   assertEquals(150, x);
   assertEquals(150, y);
 });
function shouldNotCallThisCallback() {
  assertEquals(false, true);
}
 function () {
   assertEquals(true, true);
 },
 function(x, y, width, height) {
   assertEquals(200, width);
   assertEquals(300, height);
   assertEquals(50, x);
   assertEquals(80, y);
 },
 receiveNestedMap: function(map) {
   var nestedMap = map.nestedMap;
   assertEquals('foxes', nestedMap.animals);
 },
 receiveMapWithBasicTypes: function(map) {
   assertEquals('stringValue', map.stringKey);
   assertEquals(3.14, map.doubleKey);
   assertEquals(true, map.booleanKey);
   assertEquals(null, map.nullKey);
 },
 receiveBasicTypes: function(str, dbl, bool, null_arg) {
   assertEquals('foo', str);
   assertEquals(3.14, dbl);
   assertEquals(true, bool);
   assertEquals(null, null_arg);
 },