Module:Tennis performance timeline/data

MyWikiBiz, Author Your Legacy — Saturday May 04, 2024
Jump to navigationJump to search

Documentation for this module may be created at Module:Tennis performance timeline/data/doc

local tennis = {}

-- display specifications for player rankings
tennis.rankings = {
	["1"] = {bgcolor = "lime", bold = true}, -- #00ff00
	["2"] = {bgcolor = "thistle"}, -- #d8bfd8
	["3"] = {bgcolor = "#9cf"}, -- yellow
	["4"] = {bgcolor = "#eee8aa"}, -- #ffebcd
	["5"] = {bgcolor = "#eee8aa"},
	["6"] = {bgcolor = "#eee8aa"}, -- #afeeee
	["7"] = {bgcolor = "#eee8aa"}, -- #afeeee
	["8"] = {bgcolor = "#eee8aa"}, -- #afeeee
	["9"] = {bgcolor = "#eee8aa"}, -- #afeeee
	["10"] = {bgcolor = "#eee8aa"}, -- #afeeee
}

-- display specifications for court surfaces
tennis.surfaces = {
	hard = {name = "Hard"},
	clay = {name = "Clay"},
	grass = {name = "Grass"},
	carpet = {
		name = "Carpet",
		absence = {
			type = "chrono",
			{2009, {color = "#ccc", round = "N/A", tooltip = "Discontinued", span = true, minSpellCols = 3}}
		}
	}
}

-- display specifications for indoor/outdoor courts
tennis.environments = {
	outdoor = {name = "Outdoor"},
	indoor = {name = "Indoor"}
}

-- display specifications for tournament results
tennis.rounds = {
	["Q1"] = {nocount = true},
	["Q2"] = {nocount = true},
	["Q3"] = {nocount = true},
	["1R"] = {bgcolor = "#afeeee"},
	["2R"] = {bgcolor = "#afeeee"},
	["3R"] = {bgcolor = "#afeeee"},
	["4R"] = {bgcolor = "#afeeee"},
	["QF"] = {bgcolor = "#ffebcd"},
	["SF"] = {bgcolor = "yellow"},
	["F"] = {bgcolor = "#d8bfd8"},
	["W"] = {strike = true, bgcolor = "#00ff00", bold = true},
	["DNP"] = {nocount = true},
	["U"] = {nocount = true, color = "#666", span = true, minSpellCols = 3},
	["RR"] = {bgcolor = "#afeeee"},
	["QF*"] = {nocount = true, bgcolor = "#ffebcd", name = "QF", italic = true},
	["SF*"] = {nocount = true, bgcolor = "yellow", name = "SF", italic = true},
	["F*"] = {nocount = true, bgcolor = "#d8bfd8", name = "F", italic = true},
	["WG"] = {nocount = true, group = true, bgcolor = "#ecf2ff"},
	["Z"] = {nocount = true, group = true, bgcolor = "#ecf2ff"},
	["PO"] = {nocount = true, group = true, bgcolor = "#ecf2ff"},
	["P"] = {nocount = true, bgcolor = "#ecf2ff"},
	["G"] = {strike = true, bgcolor = "gold", bold = true},
	["F-S"] = {bgcolor = "silver"},
	["SF-B"] = {bgcolor = "#cd7f32"},
	["4th"] = {bgcolor = "yellow"},
}

-- display ordering for various groups of tournaments
tennis.orders = {
	order = {
		type = "switch",
		param = "gender",
		men = {"GS", "ProSlam", "YearEnd", "Pro", "ATP1000", "National"},
		women = {"GS", "YearEnd", "PM", "P5", "National"}
	},
	GS = {
		link = "Grand Slam (tennis)",
		name = "Tournament",
--		tooltip = "Grand Slam tournaments",
		"GS Australian Open",
		"GS French Open",
		"GS Roland Garros",
		"GS Wimbledon",
		"GS US Open"
	},
	ProSlam = {
		link = "Major professional tennis tournaments before the Open Era",
--		name = "Pro Slam",
		name = "Pro Slam tournaments",
		"PS US Pro",
		"PS French Pro",
		"PS Wembley"
	},
	YearEnd = {
		type = "switch",
		param = "gender",
		men = {
--			name = "Year-end",
			name = "Year-end championships",
			{
				type = "chrono",
				{2009, "World Tour Finals"},
				{2000, "Masters Cup"},
				{1990, "World Championships"},
				default = "Masters Grand Prix"
			},
			"WCT Finals",
			"Grand Slam Cup"
		},
		women = {
--			name = "Year-end",
			name = "Year-end championships",
			{
				type = "chrono",
				{2014, "WTA Finals"},
				default = "WTA Championships",
			},
			{
				type = "chrono",
				{2015, "WTA Elite Trophy"},
				default = "Tournament of Champions"
			}
		}
	},
	Pro = {
--		name = "Professional",
		name = "Professional tournaments",
		"Pro Bristol",
		"Pro Queen's Club",
		"Pro World",
		"Pro Bonnardel",
		"Pro Britain",
		"Pro US Hard",
		"Pro Philadelphia",
		"Pro Australian",
		"Pro Tour Champ",
		"Pro Masters",
		"Pro Kramer",
		"Pro Forest Hills",
		"Pro MSG",
		"Pro Wimbledon"
	},
	ATP1000 = {
		link = {
			type = "chrono",
			{2009, "ATP World Tour Masters 1000"},
			{1990, "ATP Masters Series"},
			default = "Grand Prix Super Series"
		},
		name = {
			type = "chrono",
			{2009, "ATP Masters 1000"},
			{2000, "ATP Masters Series"},
			{1990, "ATP Super 9"},
			default = "Grand Prix Super Series"
		},
		abbr = {
			type = "chrono",
			{2009, "Masters 1000"},
			{2000, "Masters Series"},
			{1990, "Super 9"},
			default = "Super Series"
		},
		{
			type = "chrono",
			{1990, "1000 Indian Wells"},
			{1987, "GPMS Indian Wells"},
			default = "GPMS Philadelphia"
		},
		"GPMS Sydney",
		{
			type = "chrono",
			{1990, "1000 Miami"},
			default = "GPMS Miami"
		},
		{
			type = "chrono",
			{1990, "1000 Monte Carlo"},
			default = "GPMS Monte Carlo"
		},
		{
			type = "chrono",
			{1982, "GPMS Forest Hills"},
			default = "GPMS Las Vegas"
		},
		{
			type = "chrono",
			{2009, "1000 Madrid"},
			{1990, "1000 Hamburg"},
			default = "GPMS Hamburg"
		},
		{
			type = "chrono",
			{1990, "1000 Rome"},
			default = "GPMS Rome"
		},
		"GPMS Washington",
		"GPMS Indianapolis",
		{
			type = "chrono",
			{1990, "1000 Canada"},
			default = "GPMS Canada"
		},
		{
			type = "chrono",
			{1990, "1000 Cincinnati"},
			default = "GPMS Cincinnati"
		},
		{
			type = "chrono",
			{2009, "1000 Shanghai"},
			{2002, "1000 Madrid"},
			{1995, "1000 Stuttgart"},
			{1990, "1000 Stockholm"},
			default = "GPMS Stockholm"
		},
		{
			type = "chrono",
			{1990, "1000 Paris"},
			{1989, "GPMS Paris"},
			{1978, "GPMS Tokyo"},
			default = "GPMS Boston"
		},
		"GPMS Los Angeles",
		"GPMS Johannesburg",
		"GPMS Wembley",
	},
	PM = {
		link = {
			type = "chrono",
			{2009, "WTA Premier tournaments"},
			default = "WTA Tier I tournaments"
		},
		abbr = {
			type = "chrono",
			{2009, "Premier Mandatory"},
			default = "Tier I"
		},
		tooltip = {
			type = "chrono",
			{2009, "WTA Premier Mandatory tournaments"},
			default = "WTA Tier I tournaments"
		},
		{
			type ="chrono",
			{2009, "PM Indian Wells"},
			default = "T1 Indian Wells",
		},
		{
			type ="chrono",
			{2009, "PM Miami"},
			default = "T1 Miami",
		},
		{
			type = "chrono",
			{2009, "PM Madrid"},
			default = "T1 Berlin"
		},
		{
			type = "chrono",
			{2009, "PM Beijing"},
			{1996, "T1 Moscow"},
			default = "T1 Philadelphia"
		},
	},
	P5 = {
		link = {
			type = "chrono",
			{2009, "WTA Premier tournaments"},
			default = "WTA Tier I tournaments"
		},
		abbr = {
			type = "chrono",
			{2009, "Premier 5"},
			default = "Tier I"
		},
		tooltip = {
			type = "chrono",
			{2009, "WTA Premier 5 tournaments"},
			default = "WTA Tier I tournaments"
		},
		{
			type = "chrono",
			{2017, "P5 Dubai"},
			{2016, "P5 Doha"},
			{2015, "P5 Dubai"},
			{2012, "P5 Doha"},
			{2009, "P5 Dubai"},
			{2008, "T1 Doha"},
			{1993, "T1 Tokyo"},
			{1991, "T1 Boca Raton"},
			default = "T1 Chicago"
		},
		"T1 Charleston",
		{
			type ="chrono",
			{2009, "P5 Rome"},
			default = "T1 Rome",
		},
		{
			type ="chrono",
			{2009, "P5 Canada"},
			default = "T1 Canada",
		},
		{
			type = "chrono",
			{2008, "P5 Cincinnati"},
			default = "T1 San Diego"
		},
		{
			type = "chrono",
			{2014, "P5 Wuhan"},
			{2009, "P5 Tokyo"},
			{2008, "T1 Tokyo"},
			default = "T1 Zurich"
		}
	},
	National = {
		type = "switch",
		param = "gender",
		men = {
--			name = "National rep.",
			name = "National representation",
			"Summer Olympics",
			"Davis Cup",
			"World Team Cup"
		},
		women = {
--			name = "National rep.",
			name = "National representation",
			"Summer Olympics",
			"Fed Cup"
		}
	},
	surfaces = {"hard", "clay", "grass", "carpet"},
	environments = {"outdoor", "indoor"},
	rounds = {
		"W", "F", "SF", "QF", "4R", "3R", "2R", "1R", "Q3", "Q2", "Q1",
		"RR", "DNP", "U", "G", "F-S", "SF-B", "4th",
		"PO", "WG2", "PO2", "Z1", "Z2", "Z3", "Z4", "P"
	}
}

-- display specifications for tennis seasons
tennis.tours = {
	link = {
		type = "switch",
		param = "gender",
		men = {
			type = "chrono",
			{2009, "$year$ ATP World Tour"},
			{1990, "$year$ ATP Tour"},
--			default = "$year$ Grand Prix (tennis)"
		},
		women = {
			type = "chrono",
			{1988, "$year$ WTA Tour"},
		}
	}
}

-- display specifications for tennis tournaments
tennis.tournaments = {
	-- Grand Slam
	["GS Australian Open"] = {
		name = "Australian Open",
		annualLink = {
			type = "chrono",
			{1969, "$year$ Australian Open – $gender$ $matchType$"},
			default = "$year$ Australian Championships – $gender$ $matchType$"
		},
		absence = {
			type = "switch",
			param = "year",
			["1986"] = "NH"
		}
	},
	["GS French Open"] = {
		name = "French Open",
		annualLink = {
			type = "chrono",
			{1968, "$year$ French Open – $gender$ $matchType$"},
			default = "$year$ French Championships – $gender$ $matchType$"
		}
	},
	["GS Roland Garros"] = {
		name = "French Open",
		annualLink = {
			type = "chrono",
			{1968, "$year$ French Open – $gender$ $matchType$"},
			default = "$year$ French Championships – $gender$ $matchType$"
		}
	},
	["GS Wimbledon"] = {
		link = "Wimbledon Championships",
		name = "Wimbledon",
		annualLink = "$year$ Wimbledon Championships – $gender$ $matchType$"
	},
	["GS US Open"] = {
		link = "US Open (tennis)",
		name = "US Open",
		annualLink = {
			type = "chrono",
			{1968, "$year$ US Open – $gender$ $matchType$"},
			default = "$year$ U.S. National Championships – $gender$ $matchType$"
		}
	},
	-- Masters 1000
	["1000 Indian Wells"] = {
		name = "Indian Wells Masters",
		annualLink = {
			type = "chrono",
			{2009, "$year$ BNP Paribas Open – $gender$ $matchType$"},
			{2002, "$year$ Pacific Life Open – $gender$ $matchType$"},
			{2000, "$year$ Indian Wells Masters – $gender$ $matchType$"},
			{1988, {
				type = "switch",
				param = "gender",
				men = "$year$ Newsweek Champions Cup – $matchType$",
				women = {
					type = "chrono",
					{1999, "$year$ Evert Cup – $matchType$"},
					default = "$year$ State Farm Evert Cup – $matchType$"
				}
			}},
			default = "$year$ Pilot Pen Classic – $matchType$"
		},
		absence = {
			type = "switch",
			param = "gender",
			men = {
				type = "chrono",
				{1987},
				default = "NGPS"
			},
			women = {
				type = "chrono",
				{1997},
				default = "NT1"
			}
		}
	},
	["1000 Miami"] = {
		link = "Miami Open (tennis)",
		name = "Miami Open",
		annualLink = {
			type = "chrono",
			{2015, "$year$ Miami Open – $gender$ $matchType$"},
			{2013, "$year$ Sony Open Tennis – $gender$ $matchType$"},
			{2007, "$year$ Sony Ericsson Open – $gender$ $matchType$"},
			{2002, "$year$ NASDAQ-100 Open – $gender$ $matchType$"},
			{2000, "$year$ Ericsson Open – $gender$ $matchType$"},
			{1993, "$year$ Lipton Championships – $gender$ $matchType$"},
			default = "$year$ Lipton International Players Championships – $gender$ $matchType$"
		},
		absence = {
			type = "chrono",
			{1987},
			default = "NGPS"
		}
	},
	["1000 Monte Carlo"] = {
		link = "Monte-Carlo Masters",
		name = "Monte Carlo Masters",
		annualLink = {
			type = "chrono",
			{2009, "$year$ Monte-Carlo Rolex Masters – $matchType$"},
			{2000, "$year$ Monte Carlo Masters – $matchType$"},
			{1990, "$year$ Monte Carlo Open – $matchType$"},
			default = "$year$ Monte Carlo Open"
		},
	},
	["1000 Madrid"] = {
		link = "Madrid Open (tennis)",
		name = "Madrid Open",
		annualLink = {
			type = "chrono",
			{2011, "$year$ Mutua Madrid Open – $gender$ $matchType$"},
			{2009, "$year$ Mutua Madrileña Madrid Open – $gender$ $matchType$"},
			default = "$year$ Mutua Madrileña Masters Madrid – $matchType$"
		},
	},
	["1000 Hamburg"] = {
		name = "Hamburg Masters",
		annualLink = {
			type = "chrono",
			{2000, "$year$ Hamburg Masters – $matchType$"},
			{1990, "$year$ ATP German Open – $matchType$"}
		},
		absence = {
			type = "chrono",
			{1978},
			default = "NGPS"
		}
	},
	["1000 Rome"] = {
		link = "Italian Open (tennis)",
		name = "Italian Open",
		annualLink = {
			type = "chrono",
			{2002, "$year$ Internazionali BNL d'Italia – $gender$ $matchType$"},
			{2000, "$year$ Rome Masters – $gender$ $matchType$"},
			{1990, "$year$ Italian Open – $gender$ $matchType$"}
		},
		absence = {
			type = "chrono",
			{1970},
			default = "NGPS"
		}
	},
	["1000 Canada"] = {
		link = "Canadian Open (tennis)",
		name = "Canadian Open",
		annualLink = {
			type = "chrono",
			{2010, "$year$ Rogers Cup – $gender$ $matchType$"},
			{2005, {
				type = "switch",
				param = "gender",
				men = "$year$ Rogers Masters – $matchType$",
				women = "$year$ Rogers Cup – $matchType$"
			}},
			{2001, {
				type = "switch",
				param = "gender",
				men = "$year$ Canada Masters – $matchType$",
				women = "$year$ Rogers AT&T Cup – $matchType$"
			}},
			{1996, "$year$ du Maurier Open – $gender$ $matchType$"},
			{1990, "$year$ Canadian Open (tennis)"},
			{1979, "$year$ Player's Canadian Open"},
			default = "$year$ Rothmans Canadian Open"
		},
		absence = {
			type = "chrono",
			{1978},
			{1975, "NGPS"},
			{1972},
			default = "NGPS"
		}
	},
	["1000 Cincinnati"] = {
		name = "Cincinnati Masters",
		annualLink = {
			type = "chrono",
			{2011, "$year$ Western & Southern Open – $gender$ $matchType$"},
			{2002, {
				type = "switch",
				param = "gender",
				men = "$year$ Western & Southern Financial Group Masters – $matchType$",
				women = "$year$ Western & Southern Financial Group $gender$ Open – $matchType$"
			}},
			{2000, "$year$ Cincinnati Masters – $matchType$"},
			{1996, "$year$ Great American Insurance ATP Championships – $matchType$"},
			{1990, "$year$ Thriftway ATP Championships – $matchType$"},
			{1989, "$year$ Cincinnati Open – $matchType$"},
			default = "$year$ Cincinnati Open"
		},
		absence = {
			type = "switch",
			param = "gender",
			men = {
				type = "chrono",
				{1981},
				default = "NGPS"
			},
			women = {
				type = "chrono",
				{2009},
				default = "NT1"
			}
		}
	},
	["1000 Shanghai"] = {
		link = "Shanghai Masters (tennis)",
		name = "Shanghai Masters",
		annualLink = {
			type = "chrono",
			{2010, "$year$ Shanghai Rolex Masters – $matchType$"},
			default = "$year$ Shanghai ATP Masters 1000 – $matchType$"
		},
	},
	["1000 Stuttgart"] = {
		name = "Stuttgart Masters",
		annualLink = "$year$ Stuttgart Masters – $matchType$"
	},
	["1000 Stockholm"] = {
		name = "Stockholm Open",
		annualLink = {
			type = "chrono",
			{1981, "$year$ Stockholm Open – $matchType$"},
			{1979, "$year$ Stockholm Open – $gender$ $matchType$"},
			{1976, "$year$ Stockholm Open – $matchType$"},
			{1975, "$year$ Stockholm Open – $gender$ $matchType$"},
			default = "$year$ Stockholm Open – $matchType$"
		},
		absence = {
			type = "chrono",
			{1984},
			{1981, "NGPS"},
			{1970},
			default = "NGPS"
		}
	},
	["1000 Paris"] = {
		name = "Paris Masters",
		annualLink = {
			type = "chrono",
			{2002, "$year$ BNP Paribas Masters – $matchType$"},
			{2000, "$year$ Paris Masters – $matchType$"},
			default = "$year$ Paris Open – $matchType$"
		},
	},
	-- ATP Finals
	["World Tour Finals"] = {
		name = "ATP World Tour Finals",
		annualLink = "$year$ ATP World Tour Finals – $matchType$",
		absence = "DNQ"
	},
	["Masters Cup"] = {
		name = "Tennis Masters Cup",
		annualLink = "$year$ Tennis Masters Cup – $matchType$",
		absence = "DNQ"
	},
	["World Championships"] = {
		name = "ATP Tour World Championships",
		annualLink = "$year$ World Championship Tennis Finals – $matchType$",
		absence = "DNQ"
	},
	-- Grand Prix Masters Series
	["GPMS Philadelphia"] = {
		name = "U.S. Pro Indoor",
		abbr = "Philadelphia",
		annualLink = {
			type = "chrono",
			{1985, "$year$ Ebel U.S. Pro Indoor – $matchType$"},
			{1975, "$year$ U.S. Pro Indoor – $matchType$"},
			{1972, "$year$ U.S. Professional Indoor – $matchType$"},
			{1971, "$year$ U.S. Professional Indoor – $gender$ $matchType$"},
			default = "$year$ U.S. Professional Indoor – $matchType$"
		},
		absence = {
			type = "chrono",
			{1970},
			default = "NGPS"
		}
	},
	["GPMS Sydney"] = {
		name = "Sydney International",
		abbr = "Sydney",
		absence = {
			type = "chrono",
			{1972, "NGPS"},
			{1970},
			default = "NGPS"
		}
	},
	["GPMS Forest Hills"] = {
		name = "WCT Tournament of Champions",
		abbr = "Forest Hills",
		annualLink = "$year$ WCT Tournament of Champions",
		absence = {
			type = "chrono",
			{1990, "NMS"},
			{1986, "NGPS"},
			{1982},
			default = "NGPS"
		}
	},
	["GPMS Las Vegas"] = {
		name = "Alan King Tennis Classic",
		abbr = "Las Vegas",
		absence = {
			type = "chrono",
			{1982, "NGPS"},
			{1972},
			default = "NGPS"
		}
	},
	["GPMS Washington"] = {
		name = "Legg Mason Tennis Classic",
		abbr = "Washington",
		annualLink = "$year$ Washington Star International",
		absence = {
			type = "chrono",
			{1990, "NMS"},
			{1978, "NGPS"},
			{1975},
			default = "NGPS"
		}
	},
	["GPMS Indianapolis"] = {
		name = "U.S. Men's Clay Court Championships",
		abbr = "Indianapolis",
		annualLink = "$year$ U.S. Clay Court Championships – $gender$ $matchType$",
		absence = {
			type = "chrono",
			{1990, "NMS"},
			{1978, "NGPS"},
			{1974},
			default = "NGPS"
		}
	},
	["GPMS Tokyo"] = {
		name = "Tokyo Indoor",
		annualLink = "$year$ Tokyo Indoor – $matchType$"
	},
	["GPMS Boston"] = {
		name = "U.S. Pro Tennis Championships",
		abbr = "Boston",
		annualLink = "$year$ U.S. Pro Tennis Championships",
		absence = {
			type = "chrono",
			{1970},
			default = "NGPS"
		}
	},
	["GPMS Los Angeles"] = {
		link = "Los Angeles Open (tennis)",
		abbr = "Los Angeles",
		annualLink = "$year$ Pacific Southwest Open",
		absence = {
			type = "chrono",
			{1990, "NMS"},
			{1974, "NGPS"},
			{1970},
			default = "NGPS"
		}
	},
	["GPMS Wembley"] = {
		name = "Wembley Championships",
		abbr = "Wembley",
		annualLink = {
			type = "chrono",
			{1976, "$year$ Benson & Hedges Championships"},
			default = "$year$ Embassy British Indoor Championships"
		},
		absence = {
			type = "chrono",
			{1990, "NMS"},
			{1984, "NGPS"},
			{1976},
			{1972, "NGPS"},
			{1970},
			default = "NGPS"
		}
	},
	["GPMS Johannesburg"] = {
		link = "South African Open (tennis)",
		name = "South African Open",
		abbr = "Johannesburg",
		annualLink = "$year$ South African Open (tennis)",
		absence = {
			type = "chrono",
			{1990, "NMS"},
			{1975, "NGPS"},
			{1970},
			default = "NGPS"
		}
	},
	-- Grand Prix Finals
	["Masters Grand Prix"] = {
		name = "Masters Grand Prix",
		annualLink = {
			type = "chrono",
			{1985, "$year$ Nabisco Masters – $matchType$"},
			{1980, "$year$ Volvo Masters – $matchType$"},
			{1977, "$year$ Colgate-Palmolive Masters – $matchType$"},
			{1972, "$year$ Commercial Union Assurance Masters – $matchType$"},
			default = "$year$ Pepsi-Cola Masters – $matchType$"
		},
		absence = {
			type = "chrono",
			{1970},
			default = "NH"
		}
	},
	["WCT Finals"] = {
		name = "WCT Finals",
		annualLink = {
			type = "chrono",
			{1987, "$year$ World Championship Tennis Finals – $matchType$"},
			{1985, "$year$ Buick WCT Finals – $matchType$"},
			default = "$year$ World Championship Tennis Finals – $matchType$"
		},
		absence = {
			type = "chrono",
			{1990, "X"},
			{1971},
			default = "NH"
		}
	},
	["Grand Slam Cup"] = {
		name = "Grand Slam Cup",
		annualLink = "Grand Slam Cup",
		absence = {
			type = "chrono",
			{2000, "X"},
			{1990},
			default = "NH"
		}
	},
	-- Pro Slam
	["PS US Pro"] = {
		link = "U.S. Pro Tennis Championships",
		name = "U.S. Pro",
		annualLink = {
			type = "chrono",
			{1946, "U.S. Pro Tennis Championships draws, 1946–1967#$year$"},
			default = "U.S. Pro Tennis Championships draws, 1927–1945#$year$"
		},
		absence = {
			type = "chrono",
			{1968, "NM"},
			{1945},
			{1944, "NH"}
		}
	},
	["PS French Pro"] = {
		link = "French Pro Championship",
		name = "French Pro",
		annualLink = "French Pro Championship draws#$year$",
		absence = {
			type = "chrono",
			{1968, "NM"},
			{1958},
			{1957, "NH"},
			{1956},
			{1954, "NH"},
			{1953},
			{1951, "NH"},
			{1950},
			{1940, "NH"}
		}
	},
	["PS Wembley"] = {
		link = "Wembley Championships",
		name = "Wembley Pro",
		annualLink = "Wembley Professional Championships Draws#$year$",
		absence = {
			type = "chrono",
			{1968, "NM"},
			{1956},
			{1954, "NH"},
			{1949},
			{1940, "NH"}
		}
	},
	-- Pro tournaments
	["Pro Bristol"] = {
		name = "Bristol Cup",
		absence = {
			type = "chrono",
			{1933, "NH"},
			{1920},
			default = "NH"
		}
	},
	["Pro Queen's Club"] = {
		name = "Queen's Club Pro",
		absence = {
			type = "chrono",
			{1929, "NH"},
			{1927},
			default = "NH"
		}
	},
	["Pro World"] = {
		link = "German Pro Championships",
		name = "World Pro Championships",
		abbr = "World Pro",
		absence = {
			type = "chrono",
			{1934, "NH"},
			{1932},
			default = "NH"
		}
	},
	["Pro Bonnardel"] = {
		name = "Bonnardel Cup",
		absence = {
			type = "chrono",
			{1938, "NH"},
			{1935},
			default = "NH"
		}
	},
	["Pro Britain"] = {
		name = "International Pro Championship of Britain",
		abbr = "Pro Britain",
		absence = {
			type = "chrono",
			{1940, "NH"},
			{1935},
			default = "NH"
		}
	},
	["Pro US Hard"] = {
		name = "U.S. Pro Hard courts",
		abbr = "U.S. Pro",
		absence = {
			type = "chrono",
			{1947, "NH"},
			{1945},
			default = "NH"
		}
	},
	["Pro Philadelphia"] = {
		name = "Philadelphia Indoor Pro",
		abbr = "Philadelphia Pro",
		absence = {
			type = "chrono",
			{1953, "NH"},
			{1950},
			default = "NH"
		}
	},
	["Pro Australian"] = {
		name = "Australian Pro",
		absence = {
			type = "chrono",
			{1967, "NH"},
			{1954},
			default = "NH"
		}
	},
	["Pro Tour Champ"] = {
		link = "Tournament of Champions (tennis)",
		name = "Tournament of Champions",
		abbr = "Tour of Champions",
		absence = {
			type = "chrono",
			{1960, "NH"},
			{1956},
			default = "NH"
		}
	},
	["Pro Masters"] = {
		name = "Masters Pro",
		absence = {
			type = "chrono",
			{1966, "NH"},
			{1957},
			default = "NH"
		}
	},
	["Pro Kramer"] = {
		name = "Kramer Cup",
		absence = {
			type = "chrono",
			{1964, "NH"},
			{1961},
			default = "NH"
		}
	},
	["Pro Forest Hills"] = {
		name = "Forest Hills Pro",
		absence = {
			type = "switch",
			param = "year",
			["1966"] = "A",
			default = "NH"
		}
	},
	["Pro MSG"] = {
		name = "Madison Square Garden Pro",
		absence = {
			type = "chrono",
			{1968, "NH"},
			{1966},
			default = "NH"
		}
	},
	["Pro Wimbledon"] = {
		name = "Wimbledon Pro",
		absence = {
			type = "switch",
			param = "year",
			["1967"] = "A",
			default = "NH"
		}
	},
	-- Premier Mandatory
	["PM Beijing"] = {
		link = "China Open (tennis)",
		name = "China Open",
		annualLink = "$year$ China Open – $gender$ $matchType$"
	},
	-- Premier 5
	["P5 Dubai"] = {
		name = "Dubai Tennis Championships",
		abbr = "Dubai",
		annualLink = "$year$ Dubai Tennis Championships – $gender$ $matchType$"
	},
	["P5 Doha"] = {
		name = "Qatar Total Open",
		abbr = "Doha",
		annualLink = "$year$ Qatar Total Open – $matchType$"
	},
	["P5 Wuhan"] = {
		name = "Wuhan Open",
		annualLink = "$year$ Wuhan Open – $matchType$"
	},
	["P5 Tokyo"] = {
		name = "Toray Pan Pacific Open",
		abbr = "Tokyo",
		annualLink = "$year$ Toray Pan Pacific Open – $matchType$"
	},
	["T1 Chicago"] = {
		name = "Virginia Slims of Chicago",
		abbr = "Chicago"
	},
	["T1 Boca Raton"] = {
		name = "Virginia Slims of Florida",
		abbr = "Boca Raton"
	},
	["T1 Charleston"] = {
		name = "Family Circle Cup",
		abbr = "Charleston",
		annualLink = "$year$ Family Circle Cup – $matchType$",
		absence = {
			type = "chrono",
			{2009, "NT1"},
			{1990},
			default = "NT1"
		}
	},
	["T1 Berlin"] = {
		link = "German Open (WTA)",
		name = "German Open",
		abbr = "Berlin",
		annualLink = {
			type = "chrono",
			{2006, "$year$ Qatar Telecom German Open – $matchType$"},
			{2002, "$year$ WTA German Open – $matchType$"},
			{2001, "$year$ Eurocard Ladies German Open – $matchType$"},
			{1993, "$year$ WTA German Open – $matchType$"},
			{1991, "$year$ Lufthansa Cup German Open – $matchType$"},
			default = "$year$ Lufthansa Cup – $matchType$"
		}
	},
	["T1 San Diego"] = {
		name = "Acura Classic",
		abbr = "San Diego",
		annualLink = "$year$ Acura Classic – $matchType$",
		absence = {
			type = "chrono",
			{2008, "NH"},
			{2004},
			default = "NT1"
		}
	},
	["T1 Zurich"] = {
		name = "Zurich Open",
		annualLink = {
			type = "chrono",
			{2000, "$year$ Zurich Open – $matchType$"},
			{1998, "$year$ Swisscom Challenge – $matchType$"},
			{1997, "$year$ European Indoors – $matchType$"},
			{1996, "$year$ Barilla Indoors – $matchType$"},
			default = "$year$ Zurich Open – $matchType$"
		},
		absence = {
			type = "chrono",
			{1993},
			default = "NT1"
		}
	},
	["T1 Philadelphia"] = {
		name = "Virginia Slims of Philadelphia",
		abbr = "Philadelphia",
		absence = {
			type = "chrono",
			{1993},
			default = "NT1"
		}
	},
	["T1 Moscow"] = {
		name = "Kremlin Cup",
		abbr = "Moscow",
		annualLink = "$year$ Kremlin Cup – $gender$ $matchType$",
		absence = {
			type = "chrono",
			{1997},
			default = "NT1"
		}
	},
	-- WTA Finals
	["WTA Finals"] = {
		name = "WTA Finals",
		annualLink = "$year$ WTA Finals – $matchType$",
		absence = "DNQ"
	},
	["WTA Elite Trophy"] = {
		name = "WTA Elite Trophy",
		annualLink = "$year$ WTA Elite Trophy – $matchType$",
		absence = "DNQ"
	},
	["WTA Championships"] = {
		name = "WTA Tour Championships",
		annualLink = "$year$ WTA Tour Championships – $matchType$",
		absence = "DNQ"
	},
	["Tournament of Champions"] = {
		link = "WTA Tournament of Champions",
		name = "Tournament of Champions",
		annualLink = {
			type = "chrono",
			{2013, "$year$ Garanti Koza WTA Tournament of Champions – $matchType$"},
			{2012, "$year$ Qatar Airways Tournament of Champions – $matchType$"},
			default = "$year$ Commonwealth Bank Tournament of Champions – $matchType$"
		},
		absence = {
			type = "chrono",
			{2009, "DNQ"},
			default = "NH"
		}
	},
	-- Olympics
	["Summer Olympics"] = {
		link = "Tennis at the Summer Olympics",
		name = "Summer Olympics",
		annualLink = "Tennis at the $year$ Summer Olympics – $gender$ $matchType$",
		absence = {
			type = "switch",
			param = "year",
			default = "NH"
		}
	},
	-- National Representation
	["Davis Cup"] = {
		name = "Davis Cup",
		annualLink = {
			type = "chrono",
			{1981, {
					type = "switch",
					param = "round",
					W = "$year$ Davis Cup World Group",
					F = "$year$ Davis Cup World Group",
					SF = "$year$ Davis Cup World Group",
					QF = "$year$ Davis Cup World Group",
					["F*"] = "$year$ Davis Cup World Group",
					["SF*"] = "$year$ Davis Cup World Group",
					["QF*"] = "$year$ Davis Cup World Group",
					["1R"] = "$year$ Davis Cup World Group",
					PO = {
						type = "chrono",
						{2003, "$year$ Davis Cup World Group Play-offs"},
						default = "$year$ Davis Cup"
					},
					default = {
						type = "chrono",
						{2009, {
								type = "switch",
								param = "group",
								["1"] = "$year$ Davis Cup $region$ Zone Group $group$",
								["2"] = "$year$ Davis Cup $region$ Zone Group $group$",
								default = "$year$ Davis Cup#$region$ Zone"
							}
						},
						{1994, "$year$ Davis Cup $region$ Zone"},
						default = "$year$ Davis Cup"
					}
				}
			},
			default = "$year$ Davis Cup"
		},
		group = {
			type = "switch",
			param = "group",
			[""] = "",
			["1"] = " I",
			["2"] = " II",
			["3"] = " III",
			["4"] = " IV"
		},
		region = {
			type = "switch",
			param = "country",
			default = "(region needed)",
		}
	},
	["World Team Cup"] = {
		name = "World Team Cup",
		absence = {
			type = "chrono",
			{2012, "X"},
			{1975}
		}
	},
	["Fed Cup"] = {
		name = "Fed Cup",
		annualLink = {
			type = "chrono",
			{1995, {
					type = "switch",
					param = "round",
					W = "$year$ Fed Cup World Group",
					F = "$year$ Fed Cup World Group",
					SF = "$year$ Fed Cup World Group",
					QF = "$year$ Fed Cup World Group",
					["F*"] = "$year$ Fed Cup World Group",
					["SF*"] = "$year$ Fed Cup World Group",
					["QF*"] = "$year$ Fed Cup World Group",
					["1R"] = "$year$ Fed Cup World Group",
					WG = "$year$ Fed Cup World Group$group$",
					PO = "$year$ Fed Cup World Group$group$ Play-offs",
					default = "$year$ Fed Cup $region$ Zone"
				}
			},
			default = {
				type = "switch",
				param = "round",
				W = "$year$ Federation Cup World Group",
				F = "$year$ Federation Cup World Group",
				SF = "$year$ Federation Cup World Group",
				QF = "$year$ Federation Cup World Group",
				["F*"] = "$year$ Federation Cup World Group",
				["SF*"] = "$year$ Federation Cup World Group",
				["QF*"] = "$year$ Federation Cup World Group",
				["1R"] = "$year$ Federation Cup World Group",
				WG = "$year$ Federation Cup World Group$group$",
				PO = "$year$ Federation Cup World Group$group$ Play-offs",
				default = "$year$ Federation Cup $region$ Zone"
			}
		},
		group = {
			type = "switch",
			param = "group",
			[""] = "",
			["1"] = " I",
			["2"] = " II",
			["3"] = " III",
		},
		region = {
			type = "switch",
			param = "country",
			default = "(region needed)",
		}
	},
}
-- aliases
tennis.tournaments["GPMS Indian Wells"] = tennis.tournaments["1000 Indian Wells"]
tennis.tournaments["GPMS Miami"] = tennis.tournaments["1000 Miami"]
tennis.tournaments["GPMS Monte Carlo"] = tennis.tournaments["1000 Monte Carlo"]
tennis.tournaments["GPMS Hamburg"] = tennis.tournaments["1000 Hamburg"]
tennis.tournaments["GPMS Rome"] = tennis.tournaments["1000 Rome"]
tennis.tournaments["GPMS Canada"] = tennis.tournaments["1000 Canada"]
tennis.tournaments["GPMS Cincinnati"] = tennis.tournaments["1000 Cincinnati"]
tennis.tournaments["GPMS Stockholm"] = tennis.tournaments["1000 Stockholm"]
tennis.tournaments["GPMS Paris"] = tennis.tournaments["1000 Paris"]
tennis.tournaments["PM Indian Wells"] = tennis.tournaments["1000 Indian Wells"]
tennis.tournaments["PM Miami"] = tennis.tournaments["1000 Miami"]
tennis.tournaments["PM Madrid"] = tennis.tournaments["1000 Madrid"]
tennis.tournaments["P5 Rome"] = tennis.tournaments["1000 Rome"]
tennis.tournaments["P5 Canada"] = tennis.tournaments["1000 Canada"]
tennis.tournaments["P5 Cincinnati"] = tennis.tournaments["1000 Cincinnati"]
tennis.tournaments["T1 Indian Wells"] = tennis.tournaments["PM Indian Wells"]
tennis.tournaments["T1 Miami"] = tennis.tournaments["PM Miami"]
tennis.tournaments["T1 Doha"] = tennis.tournaments["P5 Doha"]
tennis.tournaments["T1 Rome"] = tennis.tournaments["P5 Rome"]
tennis.tournaments["T1 Canada"] = tennis.tournaments["P5 Canada"]
tennis.tournaments["T1 Tokyo"] = tennis.tournaments["P5 Tokyo"]
-- Populate years Summer Olympics were held.
for year = 1988, 2088, 4 do
	tennis.tournaments["Summer Olympics"].absence[tostring(year)] = "A"
end
-- Populate Davis Cup regions.
local davisCupCountries = {
	AF = {
		"RSA", "TUN"
	},
	AM = {
		"ARG", "BAR", "BRA", "CAN", "CHI", "COL", "DOM", "ECU", "ESA", "JAM",
		"PAR", "PUR", "URU", "USA"
	},
	AO = {
		"AUS", "CHN", "IND", "JPN", "KAZ", "KOR", "NZL", "THA", "TPE", "UZB"
	},
	EU = {
		"AUT", "BEL", "BIH", "BLR", "BUL", "CRO", "CYP", "CZE", "DEN", "ESP",
		"EST", "FRA", "GBR", "GEO", "GER", "GRE", "HUN", "IRL", "ISR", "ITA",
		"LAT", "LIE", "LTU", "LUX", "MDA", "MKD", "MNE", "NED", "NOR", "POL",
		"POR", "ROU", "RUS", "SCG", "SLO", "SRB", "SUI", "SVK", "SVN", "SWE",
		"TUR", "UKR", "YUG"
	}
}
local davisCupRegions = {
	AF = "Europe/Africa",
	AM = "Americas",
	AO = "Asia/Oceania",
	EU = "Europe/Africa",
}
for region,countries in pairs(davisCupCountries) do
	local regionName = davisCupRegions[region]
	for _,country in ipairs(countries) do
		tennis.tournaments["Davis Cup"].region[country] = regionName
		tennis.tournaments["Fed Cup"].region[country] = regionName
	end
end

require("Module:Tennis performance timeline/data/internal").addInternalEntries(tennis)

return tennis