import { describe, expect, test } from 'vitest' import * as Economics from './Economics.js' describe('differenceBps', () => { test('normalizes decimals and preserves rebates', () => { expect( Economics.differenceBps({ reference: { baseUnits: '1000000', currency: 'USD', decimals: 6 }, value: { baseUnits: '990000000000000000', currency: 'USD', decimals: 18 }, }), ).toBe(100) expect( Economics.differenceBps({ reference: { baseUnits: '1000000', currency: 'USD', decimals: 6 }, value: { baseUnits: '1001000', currency: 'USD', decimals: 6 }, }), ).toBe(-10) }) test('omits incomparable denominations', () => { expect( Economics.differenceBps({ reference: { baseUnits: '1000000', currency: 'USD', decimals: 6 }, value: { baseUnits: '1000000', currency: 'EUR', decimals: 6 }, }), ).toBeUndefined() }) }) describe('usd', () => { test('converts USD base units', () => { expect(Economics.usd({ baseUnits: '20705', currency: 'USD', decimals: 6 })).toBe(0.020705) expect(Economics.usd({ baseUnits: '20705', currency: 'EUR', decimals: 6 })).toBeUndefined() }) }) describe('units', () => { test('converts base units without assuming a currency', () => { expect(Economics.units({ baseUnits: '20705', currency: 'ETH', decimals: 6 })).toBe(0.020705) }) })