const test = require('tap').test; const almostEqual = require("./almost-equal.js"); const CephesWrapper = require('../cephes-wrapper.js'); test("not waiting fails in async mode", function (t) { const cephes = new CephesWrapper(false); // async mode t.throws(() => cephes._cephes_exp(2), 'cephes._cephes_exp is not a function'); t.end(); }); test("waiting works in async mode", async function (t) { const cephes = new CephesWrapper(false); // async mode await cephes.compiled; almostEqual(t, cephes._cephes_exp(2), Math.exp(2)); t.end(); }); test("waiting is optional when in sync mode", async function (t) { const cephes = new CephesWrapper(true); // sync mode await cephes.compiled; almostEqual(t, cephes._cephes_exp(2), Math.exp(2)); t.end(); }); test("cephes-browser.js is cephes in async mode", async function (t) { const cephes = require('../cephes-browser.js'); t.throws(() => cephes._cephes_exp(2), 'cephes._cephes_exp is not a function'); await cephes.compiled; almostEqual(t, cephes._cephes_exp(2), Math.exp(2)); t.end(); });