'use strict'; var Mt = require("./mt.js"); var $$Array = require("../../lib/js/array.js"); var Block = require("../../lib/js/block.js"); var Js_mapperRt = require("../../lib/js/js_mapperRt.js"); var suites = /* record */[/* contents : [] */0]; var test_id = /* record */[/* contents */0]; function eq(loc, x, y) { test_id[0] = test_id[0] + 1 | 0; suites[0] = /* :: */[ /* tuple */[ loc + (" id " + String(test_id[0])), (function (param) { return /* Eq */Block.__(0, [ x, y ]); }) ], suites[0] ]; return /* () */0; } var jsMapperConstantArray = /* array */[ /* tuple */[ 67, "C" ], /* tuple */[ 68, "D" ], /* tuple */[ 102, "x" ] ]; function uToJs(param) { return Js_mapperRt.binarySearch(3, param, jsMapperConstantArray); } function uFromJs(param) { return Js_mapperRt.revSearch(3, jsMapperConstantArray, param); } function eqU(x, y) { return x === y; } function eqUOpt(x, y) { if (x !== undefined) { if (y !== undefined) { return x === y; } else { return false; } } else { return y === undefined; } } eq("File \"ast_js_mapper_poly_test.ml\", line 25, characters 5-12", eqUOpt(uFromJs("x"), /* f */102), true); eq("File \"ast_js_mapper_poly_test.ml\", line 26, characters 5-12", eqUOpt(uFromJs("D"), /* D */68), true); eq("File \"ast_js_mapper_poly_test.ml\", line 27, characters 5-12", eqUOpt(uFromJs("C"), /* C */67), true); eq("File \"ast_js_mapper_poly_test.ml\", line 28, characters 5-12", eqUOpt(uFromJs("f"), undefined), true); eq("File \"ast_js_mapper_poly_test.ml\", line 29, characters 5-12", $$Array.map(uToJs, /* array */[ /* D */68, /* C */67, /* f */102 ]), /* array */[ "D", "C", "x" ]); var jsMapperConstantArray$1 = /* array */[ 0, 3, 4, 5 ]; function vToJs(param) { return jsMapperConstantArray$1[param]; } function vFromJs(param) { return Js_mapperRt.fromInt(4, jsMapperConstantArray$1, param); } function eqV(x, y) { return x === y; } function eqVOpt(x, y) { if (x !== undefined) { if (y !== undefined) { return x === y; } else { return false; } } else { return y === undefined; } } function s(param) { switch (param) { case 0 : return "A0"; case 1 : return "A1"; case 2 : return "A2"; case 3 : return "A3"; } } eq("File \"ast_js_mapper_poly_test.ml\", line 54, characters 5-12", $$Array.map(vToJs, /* array */[ /* A0 */0, /* A1 */1, /* A2 */2, /* A3 */3 ]), /* array */[ 0, 3, 4, 5 ]); eq("File \"ast_js_mapper_poly_test.ml\", line 55, characters 5-12", $$Array.map(vFromJs, /* array */[ 0, 1, 2, 3, 4, 5, 6 ]), /* array */[ /* A0 */0, undefined, undefined, /* A1 */1, /* A2 */2, /* A3 */3, undefined ]); function v1ToJs(param) { return param + 0 | 0; } function v1FromJs(param) { if (param <= 5 && 0 <= param) { return param - 0 | 0; } } eq("File \"ast_js_mapper_poly_test.ml\", line 68, characters 5-12", $$Array.map(v1ToJs, /* array */[ /* B0 */0, /* B1 */1, /* B2 */2, /* B3 */3, /* B4 */4, /* B5 */5 ]), /* array */[ 0, 1, 2, 3, 4, 5 ]); eq("File \"ast_js_mapper_poly_test.ml\", line 69, characters 5-12", $$Array.map(v1FromJs, /* array */[ -1, 0, 1, 2, 3, 4, 5, 6 ]), /* array */[ undefined, /* B0 */0, /* B1 */1, /* B2 */2, /* B3 */3, /* B4 */4, /* B5 */5, undefined ]); function v2ToJs(param) { return param + 2 | 0; } function v2FromJs(param) { if (param <= 7 && 2 <= param) { return param - 2 | 0; } } eq("File \"ast_js_mapper_poly_test.ml\", line 86, characters 5-12", $$Array.map(v2ToJs, /* array */[ /* C0 */0, /* C1 */1, /* C2 */2, /* C3 */3, /* C4 */4, /* C5 */5 ]), /* array */[ 2, 3, 4, 5, 6, 7 ]); eq("File \"ast_js_mapper_poly_test.ml\", line 89, characters 5-12", $$Array.map(v2FromJs, /* array */[ 0, 1, 2, 3, 4, 5, 6, 7, 8 ]), $$Array.append($$Array.append(/* array */[ undefined, undefined ], $$Array.map((function (x) { return x; }), /* array */[ /* C0 */0, /* C1 */1, /* C2 */2, /* C3 */3, /* C4 */4, /* C5 */5 ])), /* array */[undefined])); Mt.from_pair_suites("Ast_js_mapper_poly_test", suites[0]); var $plus$great = $$Array.append; exports.suites = suites; exports.test_id = test_id; exports.eq = eq; exports.uToJs = uToJs; exports.uFromJs = uFromJs; exports.eqU = eqU; exports.eqUOpt = eqUOpt; exports.vToJs = vToJs; exports.vFromJs = vFromJs; exports.eqV = eqV; exports.eqVOpt = eqVOpt; exports.s = s; exports.v1ToJs = v1ToJs; exports.v1FromJs = v1FromJs; exports.v2ToJs = v2ToJs; exports.v2FromJs = v2FromJs; exports.$plus$great = $plus$great; /* Not a pure module */