UNPKG

amount-to-words-multilang

Version:

Convert numbers to words in multiple languages (EN, TH, FR, JA, DE, ET, ES, FA, ZH)

53 lines (44 loc) 1.91 kB
import { amountToWords } from './src/index'; console.log('=== Extended Edge Cases Testing ===\n'); // Test floating point precision issues console.log('=== Floating Point Precision ==='); console.log('0.1 + 0.2 =', 0.1 + 0.2, '→', amountToWords(0.1 + 0.2, 'en')); console.log('1.005 →', amountToWords(1.005, 'en')); console.log('9.99 →', amountToWords(9.99, 'en')); // Test large numbers console.log('\n=== Large Numbers ==='); console.log('999,999.99:', amountToWords(999999.99, 'en')); console.log('1,000,000.00:', amountToWords(1000000, 'en')); console.log('1,234,567,890.12:', amountToWords(1234567890.12, 'en')); // Test Thai special cases console.log('\n=== Thai Special Cases ==='); console.log('11 →', amountToWords(11, 'th')); console.log('21 →', amountToWords(21, 'th')); console.log('121 →', amountToWords(121, 'th')); console.log('1021 →', amountToWords(1021, 'th')); console.log('10011 →', amountToWords(10011, 'th')); console.log('1,000,000.11 →', amountToWords(1000000.11, 'th')); // Test cents/satang console.log('\n=== Fractional Currency ==='); console.log('EN - 0.01 →', amountToWords(0.01, 'en')); console.log('EN - 0.99 →', amountToWords(0.99, 'en')); console.log('TH - 0.01 →', amountToWords(0.01, 'th')); console.log('TH - 0.25 →', amountToWords(0.25, 'th')); console.log('TH - 0.99 →', amountToWords(0.99, 'th')); // Test boundary values console.log('\n=== Boundary Values ==='); try { console.log('Very large number:', amountToWords(1e15, 'en')); } catch (error) { console.log('Very large number error (expected):', (error as Error).message); } try { console.log('Infinity:', amountToWords(Infinity, 'en')); } catch (error) { console.log('Infinity error (expected):', (error as Error).message); } try { console.log('NaN:', amountToWords(NaN, 'en')); } catch (error) { console.log('NaN error (expected):', (error as Error).message); }