from random import choice
from .supportive_functions import (
    generate_female_name,
    generate_male_name,
    generate_surname_less,
    remove_duplicates,
)

female_prefix = [
    "ac",
    "ae",
    "alb",
    "an",
    "ant",
    "aqui",
    "au",
    "avi",
    "ca",
    "ce",
    "ci",
    "clau",
    "clo",
    "co",
    "cor",
    "cu",
    "dea",
    "dec",
    "dom",
    "du",
    "eco",
    "ege",
    "emi",
    "ep",
    "er",
    "es",
    "eu",
    "fa",
    "fab",
    "fe",
    "fi",
    "fla",
    "fo",
    "fra",
    "ga",
    "ge",
    "gi",
    "gla",
    "gna",
    "go",
    "gra",
    "ha",
    "he",
    "her",
    "hi",
    "ho",
    "ia",
    "il",
    "im",
    "in",
    "io",
    "is",
    "ita",
    "ja",
    "je",
    "jo",
    "ju",
    "ka",
    "ke",
    "ki",
    "la",
    "le",
    "li",
    "lo",
    "lu",
    "ly",
    "ma",
    "me",
    "mi",
    "mo",
    "na",
    "ne",
    "ni",
    "no",
    "nu",
    "ny",
    "oa",
    "oe",
    "oi",
    "oia",
    "oiu",
    "pa",
    "pe",
    "pi",
    "po",
    "pra",
    "pre",
    "pri",
    "pro",
    "qua",
    "que",
    "qui",
    "quo",
    "ra",
    "re",
    "ri",
    "ro",
    "ru",
    "ry",
    "sa",
    "se",
    "si",
    "so",
    "su",
    "sy",
    "ta",
    "te",
    "ti",
    "to",
    "tu",
    "ty",
    "ua",
    "ue",
    "ui",
    "ula",
    "ule",
    "uli",
    "ulo",
    "uma",
    "ume",
    "umi",
    "umo",
    "una",
    "une",
    "uni",
    "uno",
    "ura",
    "ure",
    "uri",
    "uro",
    "usa",
    "use",
    "usi",
    "uso",
    "uta",
    "ute",
    "uti",
    "uto",
    "va",
    "ve",
    "vi",
    "vo",
    "vu",
    "vy",
    "xa",
    "xe",
    "xi",
    "xo",
    "xu",
    "xy",
    "ya",
    "ye",
    "yi",
    "yo",
    "yu",
    "zy",
]

female_suffix = [
    "ana",
    "antia",
    "astra",
    "atia",
    "avia",
    "cilia",
    "cla",
    "dia",
    "dina",
    "drus",
    "ea",
    "ecia",
    "elia",
    "ena",
    "era",
    "eria",
    "eta",
    "ia",
    "iana",
    "icca",
    "icia",
    "ida",
    "ilia",
    "ina",
    "inia",
    "iola",
    "ita",
    "la",
    "lia",
    "lina",
    "lita",
    "lo",
    "lusa",
    "ma",
    "mia",
    "na",
    "nia",
    "nilla",
    "nona",
    "ona",
    "onia",
    "ora",
    "oria",
    "ula",
    "ulla",
    "una",
    "usa",
    "uta",
    "via",
    "ya",
]

male_prefix = [
    "ae",
    "al",
    "an",
    "au",
    "ca",
    "ci",
    "co",
    "cu",
    "d",
    "da",
    "de",
    "di",
    "do",
    "ea",
    "ee",
    "ei",
    "eo",
    "eu",
    "fa",
    "fe",
    "fi",
    "fo",
    "fu",
    "ga",
    "ge",
    "gi",
    "go",
    "gu",
    "ha",
    "he",
    "hi",
    "ho",
    "ia",
    "ie",
    "ii",
    "io",
    "iu",
    "ja",
    "je",
    "ji",
    "jo",
    "ju",
    "la",
    "le",
    "li",
    "lo",
    "lu",
    "ma",
    "me",
    "mi",
    "mo",
    "mu",
    "na",
    "ne",
    "ni",
    "no",
    "nu",
    "oa",
    "oe",
    "oi",
    "oo",
    "ou",
    "p",
    "pa",
    "pe",
    "pi",
    "po",
    "pu",
    "q",
    "qa",
    "qe",
    "qi",
    "qo",
    "qu",
    "r",
    "ra",
    "re",
    "ri",
    "ro",
    "ru",
    "sa",
    "se",
    "si",
    "so",
    "su",
    "ta",
    "te",
    "ti",
    "to",
    "tu",
    "ua",
    "ue",
    "ui",
    "uo",
    "uu",
    "va",
    "ve",
    "vi",
    "vo",
    "vu",
    "xa",
    "xe",
    "xi",
    "xo",
    "xu",
    "za",
    "ze",
    "zi",
    "zo",
    "zu",
]

male_suffix = ["ian", "ianus", "ius", "o", "us"]

surname_prefix = [
    "aqui",
    "au",
    "brut",
    "caec",
    "cass",
    "cecil",
    "claud",
    "cornel",
    "fab",
    "flav",
    "gai",
    "gal",
    "juli",
    "licin",
    "lucret",
    "maec",
    "marc",
    "max",
    "metell",
    "octav",
    "paul",
    "pomp",
    "quinct",
    "sulp",
    "tiber",
    "valer",
    "vips",
]

surname_suffix = [
    "anus",
    "ellus",
    "enius",
    "enus",
    "ianus",
    "ienus",
    "illus",
    "inus",
    "ius",
    "us",
]

female_names = [
    "Aburia",
    "Accoleia",
    "Acilia",
    "Aebutia",
    "Aelia",
    "Aemilia",
    "Afrania",
    "Agrippina",
    "Alba",
    "Albina",
    "Alfidia",
    "Annalis",
    "Anteia",
    "Antestia",
    "Antonia",
    "Antullia",
    "Apollonia",
    "Aponia",
    "Appia",
    "Aquila",
    "Aricia",
    "Arria",
    "Aruntia",
    "Ateria",
    "Atia",
    "Atinia",
    "Attia",
    "Aufidia",
    "Aulia",
    "Aurelia",
    "Auria",
    "Aventina",
    "Avidia",
    "Aviena",
    "Avita",
    "Axia",
    "Baebia",
    "Baebiana",
    "Balbina",
    "Barbula",
    "Bebia",
    "Blandia",
    "Bolanilla",
    "Caecilia",
    "Caesennia",
    "Caesia",
    "Caetronia",
    "Caia",
    "Calavia",
    "Caldonia",
    "Calena",
    "Calidia",
    "Callistia",
    "Calpurnia",
    "Calventia",
    "Camilla",
    "Cantia",
    "Canuleia",
    "Carfulena",
    "Carisia",
    "Carvilia",
    "Cassia",
    "Cassiana",
    "Cassidia",
    "Cassilia",
    "Cassulia",
    "Ceria",
    "Cethegilla",
    "Chresta",
    "Clara",
    "Claudia",
    "Claudina",
    "Clelia",
    "Clodia",
    "Cloelia",
    "Cluentia",
    "Coelia",
    "Cominia",
    "Cordia",
    "Cornelia",
    "Cossinia",
    "Crispina",
    "Curia",
    "Curtia",
    "Decidia",
    "Decima",
    "Decimia",
    "Decumia",
    "Decundia",
    "Decuria",
    "Dentidia",
    "Domitia",
    "Drusilla",
    "Egnatia",
    "Equitia",
    "Esperia",
    "Etruria",
    "Eudocia",
    "Fabia",
    "Fabricia",
    "Fadia",
    "Faltonia",
    "Fannia",
    "Farsuleia",
    "Faucia",
    "Fausta",
    "Firmia",
    "Flaccidia",
    "Flaminia",
    "Flavia",
    "Flaviana",
    "Flavilia",
    "Fonteia",
    "Foslia",
    "Fufia",
    "Fuficia",
    "Fulcinia",
    "Fulvia",
    "Fulvina",
    "Furia",
    "Galba",
    "Galeria",
    "Gallia",
    "Gavia",
    "Gegania",
    "Gellia",
    "Genucia",
    "Glabia",
    "Grania",
    "Gratidia",
    "Helena",
    "Helvia",
    "Herennia",
    "Hirtia",
    "Horatia",
    "Hortensia",
    "Hosidia",
    "Hostilia",
    "Hosulia",
    "I",
    "Ignatia",
    "Ilicia",
    "Incita",
    "Ingenua",
    "Insteia",
    "Isinia",
    "Iunia",
    "Julia",
    "Junia",
    "Laelia",
    "Lavinia",
    "Licinia",
    "Lollia",
    "Lucia",
    "Lucretia",
    "Maelia",
    "Marcia",
    "Maxima",
    "Minucia",
    "Nona",
    "Octavia",
    "Papiria",
    "Paulina",
    "Petronia",
    "Pompeia",
    "Porcia",
    "Prisca",
    "Pulla",
    "Quarta",
    "Quintia",
    "Regina",
    "Rubellia",
    "Rufia",
    "Sabina",
    "Sallustia",
    "Secundina",
    "Septima",
    "Servilia",
    "Sextilia",
    "Silvia",
    "Sulpicia",
    "Tertia",
    "Tullia",
    "Ulia",
    "Valeria",
    "Verginia",
    "Vibia",
    "Vinicia",
    "Vipsania",
    "Vistilia",
    "Vitellia",
    "Volumnia",
    "Volusa",
    "Vopisca",
]

male_names = [
    "Achilles",
    "Actius",
    "Adrianus",
    "Aelianus",
    "Aelius",
    "Agrippa",
    "Agrippinus",
    "Albinus",
    "Alexandrus",
    "Amulius",
    "Andronicus",
    "Anicius",
    "Antoninus",
    "Antonius",
    "Apollinaris",
    "Apollonius",
    "Aquilinus",
    "Arcadius",
    "Aristotle",
    "Atticus",
    "Augustus",
    "Aulus",
    "Aurelian",
    "Aureolus",
    "Aventinus",
    "Balbinus",
    "Balbus",
    "Barbarus",
    "Barbatus",
    "Bassus",
    "Blasius",
    "Brutus",
    "Caecilius",
    "Caius",
    "Caligula",
    "Calpurnius",
    "Carpophorus",
    "Carus",
    "Cassian",
    "Cassius",
    "Cato",
    "Catullus",
    "Celer",
    "Celsus",
    "Cerealis",
    "Chrysogonus",
    "Cicero",
    "Claudian",
    "Claudianus",
    "Claudius",
    "Clemens",
    "Commodus",
    "Constantinus",
    "Cornelis",
    "Cornelius",
    "Corvinus",
    "Crispus",
    "Cyprianus",
    "Damianus",
    "Decentius",
    "Decimus",
    "Didius",
    "Dionysius",
    "Dolabella",
    "Domitian",
    "Donatus",
    "Draco",
    "Drusillus",
    "Drusus",
    "Egnatius",
    "Eustachius",
    "Fabius",
    "Felix",
    "Festus",
    "Flaccus",
    "Flaminius",
    "Fulgentius",
    "Gaius",
    "Galba",
    "Gellius",
    "Geminus",
    "Germanicus",
    "Gordianus",
    "Gratian",
    "Hadrian",
    "Hadrianus",
    "Hector",
    "Heliogabalus",
    "Helvius",
    "Herennius",
    "Herodes",
    "Hilarus",
    "Honorius",
    "Horatius",
    "Hortensius",
    "Hostilian",
    "Hymenaeus",
    "Iovianus",
    "Isidorus",
    "Jovinus",
    "Juba",
    "Julian",
    "Julius",
    "Junius",
    "Justinianus",
    "Justus",
    "Juvenalis",
    "Laelius",
    "Laurentius",
    "Leo",
    "Lepidus",
    "Licinianus",
    "Licinius",
    "Livius",
    "Longinus",
    "Lucianus",
    "Lucius",
    "Lucullus",
    "Lupus",
    "Lycomedes",
    "Macarius",
    "Maelius",
    "Magnus",
    "Majorianus",
    "Marcellinus",
    "Marcellus",
    "Marcus",
    "Marius",
    "Maurus",
    "Maxentius",
    "Maximus",
    "Melissus",
    "Mellitus",
    "Miltiades",
    "Montanus",
    "Nepos",
    "Neratius",
    "Nero",
    "Nicanor",
    "Niger",
    "Nonius",
    "Numerius",
    "Octavianus",
    "Octavius",
    "Olympius",
    "Opellius",
    "Orontius",
    "Ostorianus",
    "Otho",
    "Ovidius",
    "Palatinus",
    "Pansa",
    "Parthenius",
    "Patroclus",
    "Paulus",
    "Pelagius",
    "Pertinax",
    "Philemon",
    "Pius",
    "Placidus",
    "Plautus",
    "Pliny",
    "Pollux",
    "Pompeius",
    "Pontianus",
    "Postumus",
    "Priscus",
    "Probus",
    "Proclus",
    "Proculus",
    "Prudentius",
    "Pudens",
    "Quintianus",
    "Quintilian",
    "Quintillus",
    "Quintus",
    "Rabanus",
    "Rebilus",
    "Regalianus",
    "Regulus",
    "Remus",
    "Rogatus",
    "Romulus",
    "Rufinus",
    "Rufus",
    "Sabinus",
    "Saturninus",
    "Scaevola",
    "Scipio",
    "Sejanus",
    "Seneca",
    "Septimius",
    "Septimus",
    "Servius",
    "Severianus",
    "Severus",
    "Sextilianus",
    "Sextus",
    "Silvanus",
    "Solinus",
    "Sosigenes",
    "Spartacus",
    "Stephanus",
    "Tacitus",
    "Terentius",
    "Tertius",
    "Tertullus",
    "Theodosius",
    "Thracius",
    "Thrasea",
    "Tiberius",
    "Titus",
    "Traianus",
    "Trajan",
    "Trebonius",
    "Tullius",
    "Urbanus",
    "Valens",
    "Valentinus",
    "Valerius",
    "Varius",
    "Varro",
    "Verus",
    "Vespasian",
    "Vetranio",
    "Vibius",
    "Victorinus",
    "Vindex",
    "Vitalis",
    "Vitellius",
    "Vitruvius",
    "Vivianus",
    "Volusianus",
    "Xenophon",
    "Zeno",
    "Zephyrinus",
    "Zoticus",
]

surnames = [
    "Acilius",
    "Aemilius",
    "Albinus",
    "Antonius",
    "Appius",
    "Aquila",
    "Aquilinus",
    "Atilius",
    "Aurelius",
    "Balbus",
    "Barbatus",
    "Bassus",
    "Blasius",
    "Brutus",
    "Caecilius",
    "Caecus",
    "Caesar",
    "Calpurnius",
    "Capito",
    "Carus",
    "Cassius",
    "Cato",
    "Celer",
    "Cicero",
    "Cinna",
    "Claudius",
    "Cnadius",
    "Cornelius",
    "Crispus",
    "Decimus",
    "Didius",
    "Dolabella",
    "Domitianus",
    "Dossenus",
    "Drusus",
    "Fabius",
    "Festus",
    "Flavius",
    "Gaius",
    "Galerius",
    "Gallio",
    "Gallus",
    "Gavius",
    "Germanicus",
    "Geta",
    "Glabrio",
    "Gracchus",
    "Gratianus",
    "Hadrianus",
    "Hirtius",
    "Honorius",
    "Horatius",
    "Julius",
    "Junius",
    "Juvenalis",
    "Laelius",
    "Laevinus",
    "Lentulus",
    "Lepidus",
    "Licinius",
    "Ligarius",
    "Livius",
    "Longinus",
    "Lucilius",
    "Macer",
    "Macrinus",
    "Mallius",
    "Mamercus",
    "Marcellus",
    "Marius",
    "Maro",
    "Marullus",
    "Maxentius",
    "Maximus",
    "Messala",
    "Messius",
    "Metellus",
    "Modestus",
    "Naevius",
    "Nero",
    "Nerva",
    "Nigidius",
    "Ocella",
    "Octavius",
    "Orfitus",
    "Otho",
    "Paetus",
    "Papirius",
    "Paulus",
    "Pertinax",
    "Petronius",
    "Philo",
    "Plancus",
    "Plinius",
    "Pompeius",
    "Porcius",
    "Postumus",
    "Pudens",
    "Quadratus",
    "Quintilius",
    "Quirinius",
    "Regillus",
    "Regulus",
    "Rubellius",
    "Rufinus",
    "Rufus",
    "Scaevola",
    "Scipio",
    "Scribonius",
    "Sejanus",
    "Seneca",
    "Senecio",
    "Severus",
    "Sextus",
    "Silanus",
    "Silius",
    "Silus",
    "Spinther",
    "Tacitus",
    "Tarpeius",
    "Tertius",
    "Tertullus",
    "Theodosius",
    "Theon",
    "Tiberius",
    "Titius",
    "Torquatus",
    "Traianus",
    "Trogus",
    "Tullius",
    "Ulpianus",
    "Urbicus",
    "Valens",
    "Valerius",
    "Varius",
    "Vatinius",
    "Vergilius",
    "Verus",
    "Vespasianus",
    "Vibius",
    "Vindex",
    "Vipsanius",
    "Vitellius",
    "Vitruvius",
    "Vulcanius",
    "Vulso",
    "Zeno",
    "Zephyrinus",
]

female = generate_female_name(female_prefix, female_suffix, min=1, max=1)
male = generate_male_name(male_prefix, male_suffix, min=1, max=1)
surname = generate_surname_less(surname_prefix, surname_suffix)

female_lbr = choice(female_names)
male_lbr = choice(male_names)
surname_lbr = choice(surnames)
