import { describe, it, expect } from '@jest/globals' import { translate } from './pig-latin.ts' describe('ay is added to words that start with vowels', () => { it('word beginning with a', () => { const expected = 'appleay' expect(translate('apple')).toEqual(expected) }) it('word beginning with e', () => { const expected = 'earay' expect(translate('ear')).toEqual(expected) }) it('word beginning with i', () => { const expected = 'iglooay' expect(translate('igloo')).toEqual(expected) }) it('word beginning with o', () => { const expected = 'objectay' expect(translate('object')).toEqual(expected) }) it('word beginning with u', () => { const expected = 'underay' expect(translate('under')).toEqual(expected) }) it('word beginning with a vowel and followed by a qu', () => { const expected = 'equalay' expect(translate('equal')).toEqual(expected) }) }) describe('first letter and ay are moved to the end of words that start with consonants', () => { it('word beginning with p', () => { const expected = 'igpay' expect(translate('pig')).toEqual(expected) }) it('word beginning with k', () => { const expected = 'oalakay' expect(translate('koala')).toEqual(expected) }) it('word beginning with x', () => { const expected = 'enonxay' expect(translate('xenon')).toEqual(expected) }) it('word beginning with q without a following u', () => { const expected = 'atqay' expect(translate('qat')).toEqual(expected) }) }) describe('some letter clusters are treated like a single consonant', () => { it('word beginning with ch', () => { const expected = 'airchay' expect(translate('chair')).toEqual(expected) }) it('word beginning with qu', () => { const expected = 'eenquay' expect(translate('queen')).toEqual(expected) }) it('word beginning with qu and a preceding consonant', () => { const expected = 'aresquay' expect(translate('square')).toEqual(expected) }) it('word beginning with th', () => { const expected = 'erapythay' expect(translate('therapy')).toEqual(expected) }) it('word beginning with thr', () => { const expected = 'ushthray' expect(translate('thrush')).toEqual(expected) }) it('word beginning with sch', () => { const expected = 'oolschay' expect(translate('school')).toEqual(expected) }) }) describe('position of y in a word determines if it is a consonant or a vowel', () => { it('y is treated like a consonant at the beginning of a word', () => { const expected = 'ellowyay' expect(translate('yellow')).toEqual(expected) }) it('y as second letter in two letter word', () => { const expected = 'ymay' expect(translate('my')).toEqual(expected) }) }) describe('phrases are translated', () => { it('a whole phrase', () => { const expected = 'ickquay astfay unray' expect(translate('quick fast run')).toEqual(expected) }) })