UNPKG

@dahlia-labs/stableswap-sdk

Version:
85 lines (80 loc) 2.16 kB
import type { BigintIsh } from "@dahlia-labs/token-utils"; import { default as JSBI } from "jsbi"; import { computeD, computeY } from "./curve.js"; const assertBN = (actual: BigintIsh, expected: BigintIsh) => { expect(actual.toString()).toEqual(expected.toString()); }; describe("Calculator tests", () => { it("computeD", () => { assertBN( computeD(JSBI.BigInt(100), JSBI.BigInt(0), JSBI.BigInt(0)), JSBI.BigInt(0) ); assertBN( computeD( JSBI.BigInt(100), JSBI.BigInt(1000000000), JSBI.BigInt(1000000000) ), JSBI.BigInt(2000000000) ); assertBN( computeD(JSBI.BigInt(73), JSBI.BigInt(92), JSBI.BigInt(81)), JSBI.BigInt(173) ); assertBN( computeD(JSBI.BigInt(11503), JSBI.BigInt(28338), JSBI.BigInt(78889)), JSBI.BigInt(107225) ); assertBN( computeD(JSBI.BigInt(8552), JSBI.BigInt(26), JSBI.BigInt(69321)), JSBI.BigInt(66920) ); assertBN( computeD(JSBI.BigInt(496), JSBI.BigInt(62), JSBI.BigInt(68567)), JSBI.BigInt(57447) ); assertBN( computeD( JSBI.BigInt("17653203515214796177"), JSBI.BigInt("13789683482691983066"), JSBI.BigInt("3964443602730479576") ), JSBI.BigInt("17754127085422462641") ); }); it("computeY", () => { assertBN( computeY(JSBI.BigInt(100), JSBI.BigInt(100), JSBI.BigInt(0)), JSBI.BigInt(0) ); assertBN( computeY(JSBI.BigInt(8), JSBI.BigInt(94), JSBI.BigInt(163)), JSBI.BigInt(69) ); assertBN( computeY( JSBI.BigInt(2137), JSBI.BigInt(905777403660), JSBI.BigInt(830914146046) ), JSBI.BigInt(490376033) ); assertBN( computeY( JSBI.BigInt("17095344176474858097"), JSBI.BigInt(383), JSBI.BigInt("2276818911077272163") ), JSBI.BigInt("2276917873767753112") ); assertBN( computeY( JSBI.BigInt("7644937799120520965"), JSBI.BigInt("14818904982296505121"), JSBI.BigInt("17480022366793075404") ), JSBI.BigInt("2661117384496570284") ); }); });