-- Unit tests for [[Module:A or an]]. Click talk page to run tests.
local p = require('Module:UnitTests')

function p:test_all()
	self:preprocess_equals("((a or an|.11))", "a .11")
	self:preprocess_equals("((a or an|-18))", "a -18")
	self:preprocess_equals("((a or an|$18 million))", "an $18 million")
	self:preprocess_equals("((a or an|11))", "an 11")
	self:preprocess_equals("((a or an|110))", "a 110")
	self:preprocess_equals("((a or an|18,000))", "an 18,000")
	self:preprocess_equals("((a or an|18))", "an 18")
	self:preprocess_equals("((a or an|180,000))", "a 180,000")
	self:preprocess_equals("((a or an|180))", "a 180")
	self:preprocess_equals("((a or an|18000))", "an 18000")
	self:preprocess_equals("((a or an|180000))", "a 180000")
	self:preprocess_equals("((a or an|1800s))", "an 1800s")
	self:preprocess_equals("((a or an|18th))", "an 18th")
	self:preprocess_equals("((a or an|8))", "an 8")
	self:preprocess_equals("((a or an|800))", "an 800")
	self:preprocess_equals("((a or an|85))", "an 85")
	self:preprocess_equals("((a or an|8th))", "an 8th")
	self:preprocess_equals("((a or an|EU))", "an EU")
	self:preprocess_equals("((a or an|Euler))", "an Euler")
	self:preprocess_equals("((a or an|euphoria))", "a euphoria")
	self:preprocess_equals("((a or an|Europe))", "a Europe")
	self:preprocess_equals("((a or an|Ewan))", "a Ewan")
	self:preprocess_equals("((a or an|FAQ))", "an FAQ")
	self:preprocess_equals("((a or an|FDA))", "an FDA")
	self:preprocess_equals("((a or an|FIFA))", "a FIFA")
	self:preprocess_equals("((a or an|haute))", "an haute")
	self:preprocess_equals("((a or an|hauteur))", "an hauteur")
	self:preprocess_equals("((a or an|heir))", "an heir")
	self:preprocess_equals("((a or an|herb))", "a herb")
	self:preprocess_equals("((a or an|herbal))", "a herbal")
	self:preprocess_equals("((a or an|herb|variety=us))", "an herb")
	self:preprocess_equals("((a or an|herbal|variety=US))", "an herbal")
	self:preprocess_equals("((a or an|hombre))", "an hombre")
	self:preprocess_equals("((a or an|honest))", "an honest")
	self:preprocess_equals("((a or an|honor))", "an honor")
	self:preprocess_equals("((a or an|honorary))", "an honorary")
	self:preprocess_equals("((a or an|honorific))", "an honorific")
	self:preprocess_equals("((a or an|honour))", "an honour")
	self:preprocess_equals("((a or an|honourable))", "an honourable")
	self:preprocess_equals("((a or an|hour))", "an hour")
	self:preprocess_equals("((a or an|hourglass))", "an hourglass")
	self:preprocess_equals("((a or an|hourly))", "an hourly")
	self:preprocess_equals("((a or an|HTML))", "an HTML")
	self:preprocess_equals("((a or an|HTML|variety=ie))", "a HTML")
	self:preprocess_equals("((a or an|led))", "a led")
	self:preprocess_equals("((a or an|LED))", "an LED")
	self:preprocess_equals("((a or an|LGBT))", "an LGBT")
	self:preprocess_equals("((a or an|MBA))", "an MBA")
	self:preprocess_equals("((a or an|NAACP))", "an NAACP")
	self:preprocess_equals("((a or an|NASA))", "a NASA")
	self:preprocess_equals("((a or an|once))", "a once")
	self:preprocess_equals("((a or an|one))", "a one")
	self:preprocess_equals("((a or an|oneness))", "a oneness")
	self:preprocess_equals("((a or an|onerous))", "an onerous")
	self:preprocess_equals("((a or an|one's))", "a one's")
	self:preprocess_equals("((a or an|oneself))", "a oneself")
	self:preprocess_equals("((a or an|one-sided))", "a one-sided")
	self:preprocess_equals("((a or an|RIA))", "an RIA")
	self:preprocess_equals("((a or an|s.l.))", "an s.l.")
	self:preprocess_equals("((a or an|SOS))", "an SOS")
	self:preprocess_equals("((a or an|U.S.))", "a U.S.")
	self:preprocess_equals("((a or an|UAE))", "a UAE")
	self:preprocess_equals("((a or an|ubiquitous))", "a ubiquitous")
	self:preprocess_equals("((a or an|Uganda))", "a Uganda")
	self:preprocess_equals("((a or an|UK))", "a UK")
	self:preprocess_equals("((a or an|Ukraine))", "a Ukraine")
	self:preprocess_equals("((a or an|Ukrainian))", "a Ukrainian")
	self:preprocess_equals("((a or an|ukulele))", "a ukulele")
	self:preprocess_equals("((a or an|UN))", "a UN")
	self:preprocess_equals("((a or an|unanimated))", "an unanimated")
	self:preprocess_equals("((a or an|unanimous))", "a unanimous")
	self:preprocess_equals("((a or an|UNESCO))", "a UNESCO")
	self:preprocess_equals("((a or an|UNICEF))", "a UNICEF")
	self:preprocess_equals("((a or an|unidentified))", "an unidentified")
	self:preprocess_equals("((a or an|unimaginable))", "an unimaginable")
	self:preprocess_equals("((a or an|unimportant))", "an unimportant")
	self:preprocess_equals("((a or an|uninherited))", "an uninherited")
	self:preprocess_equals("((a or an|uninvolved))", "an uninvolved")
	self:preprocess_equals("((a or an|unit))", "a unit")
	self:preprocess_equals("((a or an|United States))", "a United States")
	self:preprocess_equals("((a or an|universe))", "a universe")
	self:preprocess_equals("((a or an|university))", "a university")
	self:preprocess_equals("((a or an|Unix))", "a Unix")
	self:preprocess_equals("((a or an|UNRWA))", "an UNRWA")
	self:preprocess_equals("((a or an|upsilon))", "an upsilon")
	self:preprocess_equals("((a or an|uranium))", "a uranium")
	self:preprocess_equals("((a or an|Uranus))", "a Uranus")
	self:preprocess_equals("((a or an|urethra))", "a urethra")
	self:preprocess_equals("((a or an|urinate))", "a urinate")
	self:preprocess_equals("((a or an|urine))", "a urine")
	self:preprocess_equals("((a or an|Uruguay))", "a Uruguay")
	self:preprocess_equals("((a or an|US))", "a US")
	self:preprocess_equals("((a or an|USA))", "a USA")
	self:preprocess_equals("((a or an|usability))", "a usability")
	self:preprocess_equals("((a or an|usage))", "a usage")
	self:preprocess_equals("((a or an|USDAW))", "an USDAW")
	self:preprocess_equals("((a or an|use))", "a use")
	self:preprocess_equals("((a or an|user-friendly))", "a user-friendly")
	self:preprocess_equals("((a or an|usual))", "a usual")
	self:preprocess_equals("((a or an|usurp))", "a usurp")
	self:preprocess_equals("((a or an|Utah))", "a Utah")
	self:preprocess_equals("((a or an|utensil))", "a utensil")
	self:preprocess_equals("((a or an|uteri))", "a uteri")
	self:preprocess_equals("((a or an|uterus))", "a uterus")
	self:preprocess_equals("((a or an|utilitarian))", "a utilitarian")
	self:preprocess_equals("((a or an|utilized))", "a utilized")
	self:preprocess_equals("((a or an|utopia))", "a utopia")
	self:preprocess_equals("((a or an|Utrecht))", "a Utrecht")
	self:preprocess_equals("((a or an|U-turn))", "a U-turn")
	self:preprocess_equals("((a or an|uvula))", "a uvula")
	self:preprocess_equals("((a or an|X-ray))", "an X-ray")
	self:preprocess_equals("((a or an|ytterbium))", "an ytterbium")
	self:preprocess_equals("((a or an|''à la''))", "an ''à la''")
	self:preprocess_equals("((a or an|あ))", "a あ")
end

return p