polish-number-to-words
Version:
Spell numbers using words in Polish | Napisz liczbę słownie po polsku
62 lines (61 loc) • 4.48 kB
JavaScript
import { commonFractionToWordsPL } from '../commonFractionToWords';
describe('commonFractionToWordsPL', () => {
it('should handle simple fractions', () => {
expect(commonFractionToWordsPL(1, 2)).toBe('jedna druga');
expect(commonFractionToWordsPL(2, 3)).toBe('dwie trzecie');
expect(commonFractionToWordsPL(3, 4)).toBe('trzy czwarte');
expect(commonFractionToWordsPL(1, 5)).toBe('jedna piąta');
expect(commonFractionToWordsPL(1, 10)).toBe('jedna dziesiąta');
expect(commonFractionToWordsPL(5, 6)).toBe('pięć szóstych');
});
it('should handle more complex fractions', () => {
expect(commonFractionToWordsPL(1, 100)).toBe('jedna setna');
expect(commonFractionToWordsPL(2, 100)).toBe('dwie setne');
expect(commonFractionToWordsPL(5, 100)).toBe('pięć setnych');
expect(commonFractionToWordsPL(2, 1000)).toBe('dwie tysięczne');
expect(commonFractionToWordsPL(3, 1000000)).toBe('trzy milionowe');
expect(commonFractionToWordsPL(11, 20)).toBe('jedenaście dwudziestych');
expect(commonFractionToWordsPL(21, 100)).toBe('dwadzieścia jeden setnych');
});
it('should handle fractions with multiples of thousands, millions, etc', () => {
expect(commonFractionToWordsPL(1, 2000)).toBe('jedna dwutysięczna');
expect(commonFractionToWordsPL(2, 12000)).toBe('dwie dwunastotysięczne');
expect(commonFractionToWordsPL(8, 200000)).toBe('osiem dwustutysięcznych');
expect(commonFractionToWordsPL(3, 999000)).toBe('trzy dziewięćset dziewięćdziesięciodziewięciotysięczne');
expect(commonFractionToWordsPL(1, 1000000)).toBe('jedna milionowa');
expect(commonFractionToWordsPL(2, 2000000)).toBe('dwie dwumilionowe');
});
it('should handle very complex fractions', () => {
expect(commonFractionToWordsPL(48, 123)).toBe('czterdzieści osiem sto dwudziestych trzecich');
expect(commonFractionToWordsPL(882, 1998)).toBe('osiemset osiemdziesiąt dwie tysiąc dziewięćset dziewięćdziesiąte ósme');
expect(commonFractionToWordsPL(1000000, 1000003)).toBe('milion milion trzecich');
expect(commonFractionToWordsPL(567, 890)).toBe('pięćset sześćdziesiąt siedem osiemset dziewięćdziesiątych');
expect(commonFractionToWordsPL(999999, 1000000)).toBe('dziewięćset dziewięćdziesiąt dziewięć tysięcy dziewięćset dziewięćdziesiąt dziewięć milionowych');
});
it('should handle fractions with negative parts', () => {
expect(commonFractionToWordsPL(-1, 2)).toBe('minus jedna druga');
expect(commonFractionToWordsPL(2, -3)).toBe('dwie minus trzecie');
expect(commonFractionToWordsPL(-3, -4)).toBe('minus trzy minus czwarte');
expect(commonFractionToWordsPL(-5, 6)).toBe('minus pięć szóstych');
expect(commonFractionToWordsPL(7, -8)).toBe('siedem minus ósmych');
expect(commonFractionToWordsPL(-9, -10)).toBe('minus dziewięć minus dziesiątych');
});
it('should handle special cases', () => {
expect(commonFractionToWordsPL(0, 5)).toBe('zero piątych');
expect(commonFractionToWordsPL(0, 1)).toBe('zero pierwszych');
expect(commonFractionToWordsPL(1, 1)).toBe('jedna pierwsza');
expect(commonFractionToWordsPL(2, 2)).toBe('dwie drugie');
expect(commonFractionToWordsPL(100, 1)).toBe('sto pierwszych');
});
it('should handle large numerators and denominators', () => {
expect(commonFractionToWordsPL(1234567, 8765432)).toBe('milion dwieście trzydzieści cztery tysiące pięćset sześćdziesiąt siedem osiem milionów siedemset sześćdziesiąt pięć tysięcy czterysta trzydziestych drugich');
expect(commonFractionToWordsPL(999999999, 1000000000)).toBe('dziewięćset dziewięćdziesiąt dziewięć milionów dziewięćset dziewięćdziesiąt dziewięć tysięcy dziewięćset dziewięćdziesiąt dziewięć miliardowych');
});
it('should handle singular vs plural correctly', () => {
expect(commonFractionToWordsPL(1, 3)).toBe('jedna trzecia');
expect(commonFractionToWordsPL(2, 3)).toBe('dwie trzecie');
expect(commonFractionToWordsPL(5, 3)).toBe('pięć trzecich');
expect(commonFractionToWordsPL(1, 1000)).toBe('jedna tysięczna');
expect(commonFractionToWordsPL(2, 1000)).toBe('dwie tysięczne');
});
});