polish-number-to-words
Version:
Spell numbers using words in Polish | Napisz liczbę słownie po polsku
59 lines (58 loc) • 5.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const decimalFractionToWords_1 = require("../decimalFractionToWords");
describe('decimalFractionToWordsPL', () => {
it('should throw an error for whole numbers', () => {
expect(() => (0, decimalFractionToWords_1.decimalFractionToWordsPL)(1)).toThrow();
expect(() => (0, decimalFractionToWords_1.decimalFractionToWordsPL)(0)).toThrow();
expect(() => (0, decimalFractionToWords_1.decimalFractionToWordsPL)(-5)).toThrow();
});
describe('formal fractions (default behavior)', () => {
it('should handle common decimal fractions formally', () => {
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.5)).toBe('pięć dziesiątych');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.25)).toBe('dwadzieścia pięć setnych');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.75)).toBe('siedemdziesiąt pięć setnych');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.2)).toBe('dwie dziesiąte');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.333)).toBe('trzysta trzydzieści trzy tysięczne');
});
it('should handle negative decimal fractions formally', () => {
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(-0.5)).toBe('pięć dziesiątych');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(-0.125)).toBe('sto dwadzieścia pięć tysięcznych');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(-0.01)).toBe('jedna setna');
});
});
describe('formal fractions with spellFractionExactly: true', () => {
it('should spell fractions without reducing them', () => {
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.5, { simplifyFraction: true })).toBe('jedna druga');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.25, { simplifyFraction: true })).toBe('jedna czwarta');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.75, { simplifyFraction: true })).toBe('trzy czwarte');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.2, { simplifyFraction: true })).toBe('jedna piąta');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.333, { simplifyFraction: true })).toBe('trzysta trzydzieści trzy tysięczne');
});
it('should spell negative fractions without reducing them', () => {
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(-0.5, { simplifyFraction: true })).toBe('jedna druga');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(-0.125, { simplifyFraction: true })).toBe('jedna ósma');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(-0.01, { simplifyFraction: true })).toBe('jedna setna');
});
});
describe('informal mode (przecinek)', () => {
it('should handle informal small decimals (default threshold = 4)', () => {
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.5, { informal: true })).toBe('przecinek pięć');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.25, { informal: true })).toBe('przecinek dwadzieścia pięć');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.123, { informal: true })).toBe('przecinek sto dwadzieścia trzy');
});
it('should handle informal larger decimals by digit-by-digit spelling', () => {
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.1234, { informal: true })).toBe('przecinek jeden dwa trzy cztery');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.56789, { informal: true })).toBe('przecinek pięć sześć siedem osiem dziewięć');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.10001, { informal: true })).toBe('przecinek jeden zero zero zero jeden');
});
it('should handle informal small decimals with custom threshold', () => {
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.12345, { informal: true, informalFormIndividualNumberThreshold: 6 })).toBe('przecinek dwanaście tysięcy trzysta czterdzieści pięć');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(0.123456, { informal: true, informalFormIndividualNumberThreshold: 5 })).toBe('przecinek jeden dwa trzy cztery pięć sześć');
});
it('should correctly handle negative numbers informally', () => {
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(-0.45, { informal: true })).toBe('przecinek czterdzieści pięć');
expect((0, decimalFractionToWords_1.decimalFractionToWordsPL)(-0.4567, { informal: true })).toBe('przecinek cztery pięć sześć siedem');
});
});
});