import { describe, expect, it } from '@jest/globals'; import { eGcdInt, eGcdInts } from '../../../src/gcd/expansion/e-integer-gcd.js'; describe('integer gcd', function() { it('should calculate the correct integer gcds of some Shewchuk expansions', function() { const a = [1071]; const b = [462]; const na = [-1071]; const nb = [-462]; let vals1: [number[], number[]][] = [ [a,b],[na,b],[a,nb],[na,nb], [b,a],[nb,a],[b,na],[nb,na], ]; for (let val of vals1) { { let r = eGcdInt(...val); expect(r).toEqual([21]); } { let r = eGcdInts(val); expect(r).toEqual([21]); } } let c = [21]; let d = [7]; let vals2: number[][][] = [ [a,b,c,d], [d,c,b,a], [d,c,a,b] ]; for (let val of vals2) { { let r = eGcdInts(val); expect(r).toEqual([7]); } } { let a = [0]; let b = [464]; let r1 = eGcdInt(a,b); let r2 = eGcdInt(b,a); expect(r1).toEqual(b); expect(r2).toEqual(b); } }); });