UNPKG

@indigo-labs/indigo-sdk

Version:

Indigo SDK for interacting with Indigo endpoints via lucid-evolution

42 lines (35 loc) 1.82 kB
import { expect, test } from 'vitest'; import { divideOnChainCompatible } from '../src'; import { rationalCeil, rationalFloor } from '../src/types/rational'; test('Division negative 1', () => { expect(divideOnChainCompatible(-5n, 3n), 'When negative ceil').toBe(-2n); }); test('Division negative 2', () => { expect(divideOnChainCompatible(5n, -3n), 'When negative ceil').toBe(-2n); }); test('Division positive 1', () => { expect(divideOnChainCompatible(5n, 3n), 'When positive floor').toBe(1n); }); test('Division positive 2', () => { expect(divideOnChainCompatible(-5n, -3n), 'When positive floor').toBe(1n); }); test('Floor rational', () => { expect(rationalFloor({ numerator: 2n, denominator: 3n })).toBe(0n); expect(rationalFloor({ numerator: 5n, denominator: 2n })).toBe(2n); expect(rationalFloor({ numerator: 5n, denominator: 3n })).toBe(1n); expect(rationalFloor({ numerator: 5n, denominator: 5n })).toBe(1n); expect(rationalFloor({ numerator: 5n, denominator: 6n })).toBe(0n); expect(rationalFloor({ numerator: 8n, denominator: 3n })).toBe(2n); expect(rationalFloor({ numerator: -14n, denominator: 3n })).toBe(-5n); }); test('Ceil rational', () => { expect(rationalCeil({ numerator: 2n, denominator: 3n })).toBe(1n); expect(rationalCeil({ numerator: 13n, denominator: 5n })).toBe(3n); expect(rationalCeil({ numerator: 15n, denominator: 5n })).toBe(3n); expect(rationalCeil({ numerator: 16n, denominator: 5n })).toBe(4n); expect(rationalCeil({ numerator: 44n, denominator: 14n })).toBe(4n); expect(rationalCeil({ numerator: -3n, denominator: 5n })).toBe(0n); expect(rationalCeil({ numerator: -5n, denominator: 5n })).toBe(-1n); expect(rationalCeil({ numerator: -14n, denominator: 3n })).toBe(-4n); expect(rationalCeil({ numerator: -14n, denominator: 6n })).toBe(-2n); });