{
  "$schema": "../cases.schema.json",
  "format": 1,
  "domain": "text",
  "title": {
    "en": "Text",
    "pt-BR": "Texto"
  },
  "functions": [
    {
      "id": "text.capitalize",
      "level": "extended",
      "summary": "Capitalizes a string the way a Brazilian name, company name or address is written.",
      "description": "Capitalizes the first letter of each word the way a Brazilian name, company name or address is written.\n\nFor example, `\"jose da silva\"` becomes `\"Jose da Silva\"`, `\"empresa ltda\"` becomes `\"Empresa LTDA\"` and `\"santana/rs\"` becomes `\"Santana/RS\"`.\n\n- `options.lowerCaseWords` lists the words kept in lower case between two words. The default is the prepositions and the conjunction `e`: `a`, `ao`, `aos`, `à`, `às`, `ante`, `após`, `até`, `com`, `da`, `das`, `de`, `do`, `dos`, `e`, `em`, `na`, `nas`, `no`, `nos`, `num`, `numa`, `o`, `para`, `pela`, `pelas`, `pelo`, `pelos`, `perante`, `por`, `sem`, `sob`, `sobre`, plus the particles `del`, `della`, `den`, `der`, `di`, `du`, `van` and `von`. The articles are only `a` and `o`. Until 2.4.0 `ao`, `aos`, `à`, `às`, `para`, `pela(s)`, `pelo(s)`, `sob`, `sobre`, `até`, `num`, `numa`, `ante`, `após` and `perante` were capitalized.\n- `options.upperCaseWords` lists the words always in upper case. The default is the company designations (`CIA`, `EIRELI`, `EPP`, `LTDA`, `ME`, `MEI`, `S.A`, `S.A.`, `S.S.`, `S/A`, `S/S`, `SCP`), the document abbreviations (`CEP`, `CNPJ`, `CPF`, `RG`, `UF`) and the roman numerals. The match ignores case. `S/A` and `S/S` are matched across the slash even though a slash splits words (`\"casa de carnes s/a\"` becomes `\"Casa de Carnes S/A\"`). A list given replaces its default, so `{ upperCaseWords: [] }` turns `\"empresa ltda\"` into `\"Empresa Ltda\"`. A state code after a `/`, or ending the value after a spaced hyphen, a spaced en dash or a comma, stays upper case even with `upperCaseWords` given.\n- Words split at whitespace, `-`, `/`, apostrophes and adjoining punctuation. Runs of whitespace (spaces, tabs, newlines) collapse into one space, and the whitespace at the start and at the end is dropped.\n- A lower-case word keeps its capital when it is first, last or followed by punctuation. `ME` is upper-cased only as a designation (last word, or right before another company designation such as `EPP` or `S/A`), never when a hyphen or an apostrophe attaches it to the previous word (`\"diga-me\"` becomes `\"Diga-Me\"`). `S.A` typed without the final dot is a designation too (`\"empresa s.a\"` becomes `\"Empresa S.A\"`; until 2.4.0 it was `\"Empresa S.a\"`). `SA` without dots is left alone (the surname Sá).\n- The elided particle `d` is lower case wherever it appears, even as the first word, but only when an apostrophe and a word follow it (`\"santa bárbara d'oeste\"` becomes `\"Santa Bárbara d'Oeste\"`; `\"rua d\"` becomes `\"Rua D\"`). A single letter right after an apostrophe is the English possessive and stays lower case (`\"bob's\"` becomes `\"Bob's\"`).\n- Roman numerals from `II` to `XXXIX` are upper-cased (`\"rua xxiv de maio\"` becomes `\"Rua XXIV de Maio\"`). `VI` is left out because it is also the verb form \"vi\", and numerals from `XL` on are left out because letters such as L, C and D spell ordinary words. 2.4.0 stopped at `XXIII`.\n- A state code (UF) is upper-cased after a `/` (`\"santana/rs\"` becomes `\"Santana/RS\"`). As the last word, it is also upper-cased after a spaced hyphen, a spaced en dash or a comma, the \"Cidade - UF\" form of the Correios addressing guide: `\"brasília - df\"` becomes `\"Brasília - DF\"`. Anywhere else, or after an unspaced hyphen (`\"brasília-df\"`), the two letters are an ordinary word. 2.4.0 upper-cased a state code only after `/`.\n- Only a real state code counts: `\"santana/br\"` becomes `\"Santana/Br\"`.\n- A first letter whose upper case is two letters (`ß`) keeps its case: `\"straße\"` becomes `\"Straße\"` and `\"ßa\"` stays `\"ßa\"`. The letters after the first are lowered one by one, so `\"İSTANBUL\"` becomes `\"İstanbul\"`.\n- A `lowerCaseWords` or `upperCaseWords` that is not an array falls back to its default, and a member that is not a string is ignored. A `value` that is not a string returns an empty string.",
      "params": [
        {
          "name": "value",
          "type": "string"
        },
        {
          "name": "options",
          "type": "CapitalizeOptions",
          "optional": true
        }
      ],
      "returns": "string",
      "cases": [
        {
          "id": "text.capitalize#[\"esponja vegetal\"]",
          "args": [
            "esponja vegetal"
          ],
          "expect": {
            "returns": "Esponja Vegetal"
          }
        },
        {
          "id": "text.capitalize#uppercase-accents",
          "args": [
            "JOAQUIM JOSÉ"
          ],
          "expect": {
            "returns": "Joaquim José"
          }
        },
        {
          "id": "text.capitalize#lowercase-preposition",
          "args": [
            "fulano de tal"
          ],
          "expect": {
            "returns": "Fulano de Tal"
          }
        },
        {
          "id": "text.capitalize#collapses-spaces",
          "args": [
            "esponja de    aço 60G"
          ],
          "expect": {
            "returns": "Esponja de Aço 60g"
          }
        },
        {
          "id": "text.capitalize#first-word-preposition",
          "args": [
            "de"
          ],
          "expect": {
            "returns": "De"
          }
        },
        {
          "id": "text.capitalize#empty",
          "args": [
            ""
          ],
          "expect": {
            "returns": ""
          }
        },
        {
          "id": "text.capitalize#[\"refrigerante 1L\"]",
          "args": [
            "refrigerante 1L"
          ],
          "expect": {
            "returns": "Refrigerante 1l"
          },
          "note": "JavaScript's own test: should capitalize when the value does not contain preposition"
        },
        {
          "id": "text.capitalize#[\"esponja DE aço 60G\"]",
          "args": [
            "esponja DE aço 60G"
          ],
          "expect": {
            "returns": "Esponja de Aço 60g"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain preposition"
        },
        {
          "id": "text.capitalize#[\"pão com manteiga\"]",
          "args": [
            "pão com manteiga"
          ],
          "expect": {
            "returns": "Pão com Manteiga"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain preposition"
        },
        {
          "id": "text.capitalize#[\"a\"]",
          "args": [
            "a"
          ],
          "expect": {
            "returns": "A"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain short words"
        },
        {
          "id": "text.capitalize#[\"A B C\"]",
          "args": [
            "A B C"
          ],
          "expect": {
            "returns": "A B C"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain short words"
        },
        {
          "id": "text.capitalize#[\" \"]",
          "args": [
            " "
          ],
          "expect": {
            "returns": ""
          },
          "note": "JavaScript's own test: should capitalize when the value does contain empty spaces"
        },
        {
          "id": "text.capitalize#[\"  refrigerante 1l\"]",
          "args": [
            "  refrigerante 1l"
          ],
          "expect": {
            "returns": "Refrigerante 1l"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain empty spaces"
        },
        {
          "id": "text.capitalize#[\"doc da empresa ab\",{\"upperCaseWords\":[\"DOC\",\"AB\"]}]",
          "args": [
            "doc da empresa ab",
            {
              "upperCaseWords": [
                "DOC",
                "AB"
              ]
            }
          ],
          "expect": {
            "returns": "DOC da Empresa AB"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain upper case words"
        },
        {
          "id": "text.capitalize#[\"doc inválido\",{\"upperCaseWords\":[\"DOC\"]}]",
          "args": [
            "doc inválido",
            {
              "upperCaseWords": [
                "DOC"
              ]
            }
          ],
          "expect": {
            "returns": "DOC Inválido"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain upper case words"
        },
        {
          "id": "text.capitalize#[\"josé Ama MARIA\",{\"lowerCaseWords\":[\"ama\"]}]",
          "args": [
            "josé Ama MARIA",
            {
              "lowerCaseWords": [
                "ama"
              ]
            }
          ],
          "expect": {
            "returns": "José ama Maria"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain lower case words"
        },
        {
          "id": "text.capitalize#[\"josé Não Ama MARIA\",{\"lowerCaseWords\":[\"não\",\"ama\"]}]",
          "args": [
            "josé Não Ama MARIA",
            {
              "lowerCaseWords": [
                "não",
                "ama"
              ]
            }
          ],
          "expect": {
            "returns": "José não ama Maria"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain lower case words"
        },
        {
          "id": "text.capitalize#[\"empresa ltda\",{\"upperCaseWords\":[\"ltda\"]}]",
          "args": [
            "empresa ltda",
            {
              "upperCaseWords": [
                "ltda"
              ]
            }
          ],
          "expect": {
            "returns": "Empresa LTDA"
          },
          "note": "JavaScript's own test: should capitalize when upper case words are provided in any case"
        },
        {
          "id": "text.capitalize#[\"meu cpf e rg\",{\"upperCaseWords\":[\"CPF\",\"Rg\"]}]",
          "args": [
            "meu cpf e rg",
            {
              "upperCaseWords": [
                "CPF",
                "Rg"
              ]
            }
          ],
          "expect": {
            "returns": "Meu CPF e RG"
          },
          "note": "JavaScript's own test: should capitalize when upper case words are provided in any case"
        },
        {
          "id": "text.capitalize#[\"jose da silva\"]",
          "args": [
            "jose da silva"
          ],
          "expect": {
            "returns": "Jose da Silva"
          },
          "note": "JavaScript's own test: should capitalize when the value is a Brazilian personal name"
        },
        {
          "id": "text.capitalize#[\"JOSÉ DA SILVA\"]",
          "args": [
            "JOSÉ DA SILVA"
          ],
          "expect": {
            "returns": "José da Silva"
          },
          "note": "JavaScript's own test: should capitalize when the value is a Brazilian personal name"
        },
        {
          "id": "text.capitalize#[\"empresa ltda\"]",
          "args": [
            "empresa ltda"
          ],
          "expect": {
            "returns": "Empresa LTDA"
          },
          "note": "JavaScript's own test: should capitalize when the value carries a company designation, upper cased by default"
        },
        {
          "id": "text.capitalize#[\"banco do brasil s.a.\"]",
          "args": [
            "banco do brasil s.a."
          ],
          "expect": {
            "returns": "Banco do Brasil S.A."
          },
          "note": "JavaScript's own test: should capitalize when the value carries a company designation, upper cased by default"
        },
        {
          "id": "text.capitalize#[\"casa de carnes s/a\"]",
          "args": [
            "casa de carnes s/a"
          ],
          "expect": {
            "returns": "Casa de Carnes S/A"
          },
          "note": "JavaScript's own test: should capitalize when the value carries a company designation, upper cased by default"
        },
        {
          "id": "text.capitalize#[\"casa de carnes s/a comércio\"]",
          "args": [
            "casa de carnes s/a comércio"
          ],
          "expect": {
            "returns": "Casa de Carnes S/A Comércio"
          },
          "note": "JavaScript's own test: should capitalize when the value carries a company designation, upper cased by default"
        },
        {
          "id": "text.capitalize#[\"consultoria s/s\"]",
          "args": [
            "consultoria s/s"
          ],
          "expect": {
            "returns": "Consultoria S/S"
          },
          "note": "JavaScript's own test: should capitalize when the value carries a company designation, upper cased by default"
        },
        {
          "id": "text.capitalize#[\"padaria e confeitaria me\"]",
          "args": [
            "padaria e confeitaria me"
          ],
          "expect": {
            "returns": "Padaria e Confeitaria ME"
          },
          "note": "JavaScript's own test: should capitalize when the value carries a company designation, upper cased by default"
        },
        {
          "id": "text.capitalize#[\"meu cpf e rg\"]",
          "args": [
            "meu cpf e rg"
          ],
          "expect": {
            "returns": "Meu CPF e RG"
          },
          "note": "JavaScript's own test: should capitalize when the value carries a company designation, upper cased by default"
        },
        {
          "id": "text.capitalize#[\"cep 01310-100\"]",
          "args": [
            "cep 01310-100"
          ],
          "expect": {
            "returns": "CEP 01310-100"
          },
          "note": "JavaScript's own test: should capitalize when the value carries a company designation, upper cased by default"
        },
        {
          "id": "text.capitalize#[\"jose de sa\"]",
          "args": [
            "jose de sa"
          ],
          "expect": {
            "returns": "Jose de Sa"
          },
          "note": "JavaScript's own test: should capitalize when a word looks like a designation but is not one, or is a designation left out of the default list"
        },
        {
          "id": "text.capitalize#[\"eu vi maria\"]",
          "args": [
            "eu vi maria"
          ],
          "expect": {
            "returns": "Eu Vi Maria"
          },
          "note": "JavaScript's own test: should capitalize when a word looks like a designation but is not one, or is a designation left out of the default list"
        },
        {
          "id": "text.capitalize#[\"diga-me\"]",
          "args": [
            "diga-me"
          ],
          "expect": {
            "returns": "Diga-Me"
          },
          "note": "JavaScript's own test: should capitalize when a word looks like a designation but is not one, or is a designation left out of the default list"
        },
        {
          "id": "text.capitalize#[\"mogi-guaçu\"]",
          "args": [
            "mogi-guaçu"
          ],
          "expect": {
            "returns": "Mogi-Guaçu"
          },
          "note": "JavaScript's own test: should capitalize when the value is a Brazilian address"
        },
        {
          "id": "text.capitalize#[\"santana/rs\"]",
          "args": [
            "santana/rs"
          ],
          "expect": {
            "returns": "Santana/RS"
          },
          "note": "JavaScript's own test: should capitalize when the value is a Brazilian address"
        },
        {
          "id": "text.capitalize#[\"porto alegre/rs\"]",
          "args": [
            "porto alegre/rs"
          ],
          "expect": {
            "returns": "Porto Alegre/RS"
          },
          "note": "JavaScript's own test: should capitalize when the value is a Brazilian address"
        },
        {
          "id": "text.capitalize#[\"são paulo/sp\"]",
          "args": [
            "são paulo/sp"
          ],
          "expect": {
            "returns": "São Paulo/SP"
          },
          "note": "JavaScript's own test: should capitalize when the value is a Brazilian address"
        },
        {
          "id": "text.capitalize#[\"santa bárbara d'oeste\"]",
          "args": [
            "santa bárbara d'oeste"
          ],
          "expect": {
            "returns": "Santa Bárbara d'Oeste"
          },
          "note": "JavaScript's own test: should capitalize when a word is bound by an apostrophe or by punctuation"
        },
        {
          "id": "text.capitalize#[\"SANTA BÁRBARA D'OESTE\"]",
          "args": [
            "SANTA BÁRBARA D'OESTE"
          ],
          "expect": {
            "returns": "Santa Bárbara d'Oeste"
          },
          "note": "JavaScript's own test: should capitalize when a word is bound by an apostrophe or by punctuation"
        },
        {
          "id": "text.capitalize#[\"joão d’ávila\"]",
          "args": [
            "joão d’ávila"
          ],
          "expect": {
            "returns": "João d’Ávila"
          },
          "note": "JavaScript's own test: should capitalize when a word is bound by an apostrophe or by punctuation"
        },
        {
          "id": "text.capitalize#[\"o'neill\"]",
          "args": [
            "o'neill"
          ],
          "expect": {
            "returns": "O'Neill"
          },
          "note": "JavaScript's own test: should capitalize when a word is bound by an apostrophe or by punctuation"
        },
        {
          "id": "text.capitalize#[\"(empresa) ltda\"]",
          "args": [
            "(empresa) ltda"
          ],
          "expect": {
            "returns": "(Empresa) LTDA"
          },
          "note": "JavaScript's own test: should capitalize when a word is bound by an apostrophe or by punctuation"
        },
        {
          "id": "text.capitalize#[\"\\\"joão\\\" silva\"]",
          "args": [
            "\"joão\" silva"
          ],
          "expect": {
            "returns": "\"João\" Silva"
          },
          "note": "JavaScript's own test: should capitalize when a word is bound by an apostrophe or by punctuation"
        },
        {
          "id": "text.capitalize#[\"bairro:centro\"]",
          "args": [
            "bairro:centro"
          ],
          "expect": {
            "returns": "Bairro:Centro"
          },
          "note": "JavaScript's own test: should capitalize when a word is bound by an apostrophe or by punctuation"
        },
        {
          "id": "text.capitalize#[\"rua b,número 10\"]",
          "args": [
            "rua b,número 10"
          ],
          "expect": {
            "returns": "Rua B,Número 10"
          },
          "note": "JavaScript's own test: should capitalize when a word is bound by an apostrophe or by punctuation"
        },
        {
          "id": "text.capitalize#[\"casa;lote [3]\"]",
          "args": [
            "casa;lote [3]"
          ],
          "expect": {
            "returns": "Casa;Lote [3]"
          },
          "note": "JavaScript's own test: should capitalize when a word is bound by an apostrophe or by punctuation"
        },
        {
          "id": "text.capitalize#[\"bob's\"]",
          "args": [
            "bob's"
          ],
          "expect": {
            "returns": "Bob's"
          },
          "note": "JavaScript's own test: should capitalize when a single letter follows an apostrophe, the English possessive, which stays in lower case"
        },
        {
          "id": "text.capitalize#[\"habib's\"]",
          "args": [
            "habib's"
          ],
          "expect": {
            "returns": "Habib's"
          },
          "note": "JavaScript's own test: should capitalize when a single letter follows an apostrophe, the English possessive, which stays in lower case"
        },
        {
          "id": "text.capitalize#[\"mc donald's\"]",
          "args": [
            "mc donald's"
          ],
          "expect": {
            "returns": "Mc Donald's"
          },
          "note": "JavaScript's own test: should capitalize when a single letter follows an apostrophe, the English possessive, which stays in lower case"
        },
        {
          "id": "text.capitalize#[\"x'd\"]",
          "args": [
            "x'd"
          ],
          "expect": {
            "returns": "X'd"
          },
          "note": "JavaScript's own test: should capitalize when a single letter follows an apostrophe, the English possessive, which stays in lower case"
        },
        {
          "id": "text.capitalize#[\"sant'ana\"]",
          "args": [
            "sant'ana"
          ],
          "expect": {
            "returns": "Sant'Ana"
          },
          "note": "JavaScript's own test: should capitalize when a single letter follows an apostrophe, the English possessive, which stays in lower case"
        },
        {
          "id": "text.capitalize#[\"d'oeste\"]",
          "args": [
            "d'oeste"
          ],
          "expect": {
            "returns": "d'Oeste"
          },
          "note": "JavaScript's own test: should capitalize when the elided particle d' is followed by an apostrophe and a word, wherever it appears"
        },
        {
          "id": "text.capitalize#[\"dias d'ávila\"]",
          "args": [
            "dias d'ávila"
          ],
          "expect": {
            "returns": "Dias d'Ávila"
          },
          "note": "JavaScript's own test: should capitalize when the elided particle d' is followed by an apostrophe and a word, wherever it appears"
        },
        {
          "id": "text.capitalize#[\"olho d'água do piauí\"]",
          "args": [
            "olho d'água do piauí"
          ],
          "expect": {
            "returns": "Olho d'Água do Piauí"
          },
          "note": "JavaScript's own test: should capitalize when the elided particle d' is followed by an apostrophe and a word, wherever it appears"
        },
        {
          "id": "text.capitalize#[\"rua d'\"]",
          "args": [
            "rua d'"
          ],
          "expect": {
            "returns": "Rua D'"
          },
          "note": "JavaScript's own test: should capitalize when the elided particle d' is followed by an apostrophe and a word, wherever it appears"
        },
        {
          "id": "text.capitalize#[\"d''oeste\"]",
          "args": [
            "d''oeste"
          ],
          "expect": {
            "returns": "D''Oeste"
          },
          "note": "JavaScript's own test: should capitalize when the elided particle d' is followed by an apostrophe and a word, wherever it appears"
        },
        {
          "id": "text.capitalize#[\"rua d\"]",
          "args": [
            "rua d"
          ],
          "expect": {
            "returns": "Rua D"
          },
          "note": "JavaScript's own test: should capitalize when a word of the lower case list ends the value or is followed by punctuation, so it is a designator rather than a link between two words"
        },
        {
          "id": "text.capitalize#[\"rua a, 100\"]",
          "args": [
            "rua a, 100"
          ],
          "expect": {
            "returns": "Rua A, 100"
          },
          "note": "JavaScript's own test: should capitalize when a word of the lower case list ends the value or is followed by punctuation, so it is a designator rather than a link between two words"
        },
        {
          "id": "text.capitalize#[\"condomínio a, quadra d, lote o\"]",
          "args": [
            "condomínio a, quadra d, lote o"
          ],
          "expect": {
            "returns": "Condomínio A, Quadra D, Lote O"
          },
          "note": "JavaScript's own test: should capitalize when a word of the lower case list ends the value or is followed by punctuation, so it is a designator rather than a link between two words"
        },
        {
          "id": "text.capitalize#[\"maria e joão\"]",
          "args": [
            "maria e joão"
          ],
          "expect": {
            "returns": "Maria e João"
          },
          "note": "JavaScript's own test: should capitalize when a word of the lower case list ends the value or is followed by punctuation, so it is a designator rather than a link between two words"
        },
        {
          "id": "text.capitalize#[\"maria e--joão\"]",
          "args": [
            "maria e--joão"
          ],
          "expect": {
            "returns": "Maria e--João"
          },
          "note": "JavaScript's own test: should capitalize when a word of the lower case list ends the value or is followed by punctuation, so it is a designator rather than a link between two words"
        },
        {
          "id": "text.capitalize#[\"josé da silva\"]",
          "args": [
            "josé da silva"
          ],
          "expect": {
            "returns": "José da Silva"
          },
          "note": "JavaScript's own test: should capitalize when a word of the lower case list ends the value or is followed by punctuation, so it is a designator rather than a link between two words"
        },
        {
          "id": "text.capitalize#[\"luiz von schmidt\"]",
          "args": [
            "luiz von schmidt"
          ],
          "expect": {
            "returns": "Luiz von Schmidt"
          },
          "note": "JavaScript's own test: should capitalize when a word of the lower case list ends the value or is followed by punctuation, so it is a designator rather than a link between two words"
        },
        {
          "id": "text.capitalize#[\"são joão del rei\"]",
          "args": [
            "são joão del rei"
          ],
          "expect": {
            "returns": "São João del Rei"
          },
          "note": "JavaScript's own test: should capitalize when a word of the lower case list ends the value or is followed by punctuation, so it is a designator rather than a link between two words"
        },
        {
          "id": "text.capitalize#[\"fulano comércio me\"]",
          "args": [
            "fulano comércio me"
          ],
          "expect": {
            "returns": "Fulano Comércio ME"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano me epp\"]",
          "args": [
            "fulano me epp"
          ],
          "expect": {
            "returns": "Fulano ME EPP"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano ltda me\"]",
          "args": [
            "fulano ltda me"
          ],
          "expect": {
            "returns": "Fulano LTDA ME"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"não-me-toque\"]",
          "args": [
            "não-me-toque"
          ],
          "expect": {
            "returns": "Não-Me-Toque"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"diga-me a verdade\"]",
          "args": [
            "diga-me a verdade"
          ],
          "expect": {
            "returns": "Diga-Me a Verdade"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"me e você\"]",
          "args": [
            "me e você"
          ],
          "expect": {
            "returns": "Me e Você"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"me\"]",
          "args": [
            "me"
          ],
          "expect": {
            "returns": "ME"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"envie-me, cpf\"]",
          "args": [
            "envie-me, cpf"
          ],
          "expect": {
            "returns": "Envie-Me, CPF"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"envie-me ltda\"]",
          "args": [
            "envie-me ltda"
          ],
          "expect": {
            "returns": "Envie-Me LTDA"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"dê-me a mão\"]",
          "args": [
            "dê-me a mão"
          ],
          "expect": {
            "returns": "Dê-Me a Mão"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"por favor, diga-me\"]",
          "args": [
            "por favor, diga-me"
          ],
          "expect": {
            "returns": "Por Favor, Diga-Me"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano, me\"]",
          "args": [
            "fulano, me"
          ],
          "expect": {
            "returns": "Fulano, ME"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano/me\"]",
          "args": [
            "fulano/me"
          ],
          "expect": {
            "returns": "Fulano/ME"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano d’me\"]",
          "args": [
            "fulano d’me"
          ],
          "expect": {
            "returns": "Fulano d’Me"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano d‘me\"]",
          "args": [
            "fulano d‘me"
          ],
          "expect": {
            "returns": "Fulano d‘Me"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano me cpf\"]",
          "args": [
            "fulano me cpf"
          ],
          "expect": {
            "returns": "Fulano Me CPF"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano me, epp\"]",
          "args": [
            "fulano me, epp"
          ],
          "expect": {
            "returns": "Fulano Me, EPP"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano me s/a\"]",
          "args": [
            "fulano me s/a"
          ],
          "expect": {
            "returns": "Fulano ME S/A"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano me s.a.\"]",
          "args": [
            "fulano me s.a."
          ],
          "expect": {
            "returns": "Fulano ME S.A."
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano me s/x\"]",
          "args": [
            "fulano me s/x"
          ],
          "expect": {
            "returns": "Fulano Me S/X"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano me s / a\"]",
          "args": [
            "fulano me s / a"
          ],
          "expect": {
            "returns": "Fulano Me S / A"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano me s a\"]",
          "args": [
            "fulano me s a"
          ],
          "expect": {
            "returns": "Fulano Me S A"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano me epp ltda\"]",
          "args": [
            "fulano me epp ltda"
          ],
          "expect": {
            "returns": "Fulano ME EPP LTDA"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano me s/\"]",
          "args": [
            "fulano me s/"
          ],
          "expect": {
            "returns": "Fulano Me S/"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano me epp\",{\"upperCaseWords\":[\"ME\"]}]",
          "args": [
            "fulano me epp",
            {
              "upperCaseWords": [
                "ME"
              ]
            }
          ],
          "expect": {
            "returns": "Fulano Me Epp"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano me s/a\",{\"upperCaseWords\":[\"ME\"]}]",
          "args": [
            "fulano me s/a",
            {
              "upperCaseWords": [
                "ME"
              ]
            }
          ],
          "expect": {
            "returns": "Fulano Me S/A"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"fulano me\",{\"upperCaseWords\":[\"ME\"]}]",
          "args": [
            "fulano me",
            {
              "upperCaseWords": [
                "ME"
              ]
            }
          ],
          "expect": {
            "returns": "Fulano ME"
          },
          "note": "JavaScript's own test: should capitalize when ME is the pronoun rather than the designation of a microempresa, which is written at the end of the name"
        },
        {
          "id": "text.capitalize#[\"maria van der berg\"]",
          "args": [
            "maria van der berg"
          ],
          "expect": {
            "returns": "Maria van der Berg"
          },
          "note": "JavaScript's own test: should capitalize when the name carries a foreign particle"
        },
        {
          "id": "text.capitalize#[\"carlo di giovanni\"]",
          "args": [
            "carlo di giovanni"
          ],
          "expect": {
            "returns": "Carlo di Giovanni"
          },
          "note": "JavaScript's own test: should capitalize when the name carries a foreign particle"
        },
        {
          "id": "text.capitalize#[\"von schmidt\"]",
          "args": [
            "von schmidt"
          ],
          "expect": {
            "returns": "Von Schmidt"
          },
          "note": "JavaScript's own test: should capitalize when the name carries a foreign particle"
        },
        {
          "id": "text.capitalize#[\"santana/br\"]",
          "args": [
            "santana/br"
          ],
          "expect": {
            "returns": "Santana/Br"
          },
          "note": "JavaScript's own test: should capitalize when a word after a slash is not a state code, and when a state code has no slash before it"
        },
        {
          "id": "text.capitalize#[\"santana/xingu\"]",
          "args": [
            "santana/xingu"
          ],
          "expect": {
            "returns": "Santana/Xingu"
          },
          "note": "JavaScript's own test: should capitalize when a word after a slash is not a state code, and when a state code has no slash before it"
        },
        {
          "id": "text.capitalize#[\"santana rs\"]",
          "args": [
            "santana rs"
          ],
          "expect": {
            "returns": "Santana Rs"
          },
          "note": "JavaScript's own test: should capitalize when a word after a slash is not a state code, and when a state code has no slash before it"
        },
        {
          "id": "text.capitalize#[\"joão paulo ii\"]",
          "args": [
            "joão paulo ii"
          ],
          "expect": {
            "returns": "João Paulo II"
          },
          "note": "JavaScript's own test: should capitalize when the value carries a roman numeral"
        },
        {
          "id": "text.capitalize#[\"rua xv de novembro\"]",
          "args": [
            "rua xv de novembro"
          ],
          "expect": {
            "returns": "Rua XV de Novembro"
          },
          "note": "JavaScript's own test: should capitalize when the value carries a roman numeral"
        },
        {
          "id": "text.capitalize#[\"avenida papa joão xxiii\"]",
          "args": [
            "avenida papa joão xxiii"
          ],
          "expect": {
            "returns": "Avenida Papa João XXIII"
          },
          "note": "JavaScript's own test: should capitalize when the value carries a roman numeral"
        },
        {
          "id": "text.capitalize#[\"empresa ltda\",{\"upperCaseWords\":[]}]",
          "args": [
            "empresa ltda",
            {
              "upperCaseWords": []
            }
          ],
          "expect": {
            "returns": "Empresa Ltda"
          },
          "note": "JavaScript's own test: should capitalize when a word list given in the options replaces the default one"
        },
        {
          "id": "text.capitalize#[\"jose da silva\",{\"lowerCaseWords\":[]}]",
          "args": [
            "jose da silva",
            {
              "lowerCaseWords": []
            }
          ],
          "expect": {
            "returns": "Jose Da Silva"
          },
          "note": "JavaScript's own test: should capitalize when a word list given in the options replaces the default one"
        },
        {
          "id": "text.capitalize#[\"banco do brasil s.a.\",{\"upperCaseWords\":[\"s.a.\"]}]",
          "args": [
            "banco do brasil s.a.",
            {
              "upperCaseWords": [
                "s.a."
              ]
            }
          ],
          "expect": {
            "returns": "Banco do Brasil S.A."
          },
          "note": "JavaScript's own test: should capitalize when a word list given in the options replaces the default one"
        },
        {
          "id": "text.capitalize#[\"santana/rs\",{\"upperCaseWords\":[]}]",
          "args": [
            "santana/rs",
            {
              "upperCaseWords": []
            }
          ],
          "expect": {
            "returns": "Santana/RS"
          },
          "note": "JavaScript's own test: should capitalize when a word list given in the options replaces the default one"
        },
        {
          "id": "text.capitalize#[\"joao\\tsilva\"]",
          "args": [
            "joao\tsilva"
          ],
          "expect": {
            "returns": "Joao Silva"
          },
          "note": "JavaScript's own test: should capitalize when the value contains whitespace other than a space"
        },
        {
          "id": "text.capitalize#[\"joao\\n\\nsilva\"]",
          "args": [
            "joao\n\nsilva"
          ],
          "expect": {
            "returns": "Joao Silva"
          },
          "note": "JavaScript's own test: should capitalize when the value contains whitespace other than a space"
        },
        {
          "id": "text.capitalize#[\"  joao \\t\\n silva  \"]",
          "args": [
            "  joao \t\n silva  "
          ],
          "expect": {
            "returns": "Joao Silva"
          },
          "note": "JavaScript's own test: should capitalize when the value contains whitespace other than a space"
        },
        {
          "id": "text.capitalize#[\"MOGI-GUAÇU\"]",
          "args": [
            "MOGI-GUAÇU"
          ],
          "expect": {
            "returns": "Mogi-Guaçu"
          },
          "note": "JavaScript's own test: should capitalize when the value contains hyphens or slashes"
        },
        {
          "id": "text.capitalize#[\"SANTANA/RS\"]",
          "args": [
            "SANTANA/RS"
          ],
          "expect": {
            "returns": "Santana/RS"
          },
          "note": "JavaScript's own test: should capitalize when the value contains hyphens or slashes"
        },
        {
          "id": "text.capitalize#[\"SANTANA/RS\",{\"upperCaseWords\":[\"rs\"]}]",
          "args": [
            "SANTANA/RS",
            {
              "upperCaseWords": [
                "rs"
              ]
            }
          ],
          "expect": {
            "returns": "Santana/RS"
          },
          "note": "JavaScript's own test: should capitalize when the value contains hyphens or slashes"
        },
        {
          "id": "text.capitalize#[\"sÃo josÉ do rio-preto\"]",
          "args": [
            "sÃo josÉ do rio-preto"
          ],
          "expect": {
            "returns": "São José do Rio-Preto"
          },
          "note": "JavaScript's own test: should capitalize when the value contains hyphens or slashes"
        },
        {
          "id": "text.capitalize#[\"de-facto\"]",
          "args": [
            "de-facto"
          ],
          "expect": {
            "returns": "De-Facto"
          },
          "note": "JavaScript's own test: should capitalize when the value contains hyphens or slashes"
        },
        {
          "id": "text.capitalize#[\"rio-de-janeiro\"]",
          "args": [
            "rio-de-janeiro"
          ],
          "expect": {
            "returns": "Rio-de-Janeiro"
          },
          "note": "JavaScript's own test: should capitalize when the value contains hyphens or slashes"
        },
        {
          "id": "text.capitalize#[\"a - b\"]",
          "args": [
            "a - b"
          ],
          "expect": {
            "returns": "A - B"
          },
          "note": "JavaScript's own test: should capitalize when the value contains hyphens or slashes"
        },
        {
          "id": "text.capitalize#[\"-de paula\"]",
          "args": [
            "-de paula"
          ],
          "expect": {
            "returns": "-De Paula"
          },
          "note": "JavaScript's own test: should capitalize when a leading hyphen or slash is not itself counted as a word, so the preposition right after it is still the first word and keeps its capital"
        },
        {
          "id": "text.capitalize#[\"/de paula\"]",
          "args": [
            "/de paula"
          ],
          "expect": {
            "returns": "/De Paula"
          },
          "note": "JavaScript's own test: should capitalize when a leading hyphen or slash is not itself counted as a word, so the preposition right after it is still the first word and keeps its capital"
        },
        {
          "id": "text.capitalize#[\"İSTANBUL\"]",
          "args": [
            "İSTANBUL"
          ],
          "expect": {
            "returns": "İstanbul"
          },
          "note": "JavaScript's own test: should capitalize when the first letter changes length between cases: the dotted İ is one character in upper case and two in lower case, and a letter whose upper case is two letters keeps its case"
        },
        {
          "id": "text.capitalize#[\"İ\"]",
          "args": [
            "İ"
          ],
          "expect": {
            "returns": "İ"
          },
          "note": "JavaScript's own test: should capitalize when the first letter changes length between cases: the dotted İ is one character in upper case and two in lower case, and a letter whose upper case is two letters keeps its case"
        },
        {
          "id": "text.capitalize#[\"i̇stanbul\"]",
          "args": [
            "i̇stanbul"
          ],
          "expect": {
            "returns": "İstanbul"
          },
          "note": "JavaScript's own test: should capitalize when the first letter changes length between cases: the dotted İ is one character in upper case and two in lower case, and a letter whose upper case is two letters keeps its case"
        },
        {
          "id": "text.capitalize#[\"straße\"]",
          "args": [
            "straße"
          ],
          "expect": {
            "returns": "Straße"
          },
          "note": "JavaScript's own test: should capitalize when the first letter changes length between cases: the dotted İ is one character in upper case and two in lower case, and a letter whose upper case is two letters keeps its case"
        },
        {
          "id": "text.capitalize#[\"ßa\"]",
          "args": [
            "ßa"
          ],
          "expect": {
            "returns": "ßa"
          },
          "note": "JavaScript's own test: should capitalize when the first letter changes length between cases: the dotted İ is one character in upper case and two in lower case, and a letter whose upper case is two letters keeps its case"
        },
        {
          "id": "text.capitalize#[\"ﬁm\"]",
          "args": [
            "ﬁm"
          ],
          "expect": {
            "returns": "ﬁm"
          },
          "note": "JavaScript's own test: should capitalize when the first letter changes length between cases: the dotted İ is one character in upper case and two in lower case, and a letter whose upper case is two letters keeps its case"
        },
        {
          "id": "text.capitalize#[\"ǆemal\"]",
          "args": [
            "ǆemal"
          ],
          "expect": {
            "returns": "Ǆemal"
          },
          "note": "JavaScript's own test: should capitalize when the first letter changes length between cases: the dotted İ is one character in upper case and two in lower case, and a letter whose upper case is two letters keeps its case"
        },
        {
          "id": "text.capitalize#[\"--de paula\"]",
          "args": [
            "--de paula"
          ],
          "expect": {
            "returns": "--De Paula"
          },
          "note": "JavaScript's own test: should capitalize when consecutive separators produce an empty token, which must not be counted as a word either"
        },
        {
          "id": "text.capitalize#[\"brasília - df\"]",
          "args": [
            "brasília - df"
          ],
          "expect": {
            "returns": "Brasília - DF"
          },
          "note": "from the maintainer briefing, #593: a state code after a spaced hyphen is upper-cased; 2.4.0 gave 'Brasília - Df'"
        },
        {
          "id": "text.capitalize#[\"são paulo – sp\"]",
          "args": [
            "são paulo – sp"
          ],
          "expect": {
            "returns": "São Paulo – SP"
          },
          "note": "JavaScript's own test: when a state code ends the value after a spaced hyphen, an en dash or a comma, the Correios' 'Cidade – UF'"
        },
        {
          "id": "text.capitalize#[\"curitiba, pr\"]",
          "args": [
            "curitiba, pr"
          ],
          "expect": {
            "returns": "Curitiba, PR"
          },
          "note": "JavaScript's own test: when a state code ends the value after a spaced hyphen, an en dash or a comma, the Correios' 'Cidade – UF'"
        },
        {
          "id": "text.capitalize#[\"rua x, 10, centro, recife - pe\"]",
          "args": [
            "rua x, 10, centro, recife - pe"
          ],
          "expect": {
            "returns": "Rua X, 10, Centro, Recife - PE"
          },
          "note": "JavaScript's own test: when a state code ends the value after a spaced hyphen, an en dash or a comma, the Correios' 'Cidade – UF'"
        },
        {
          "id": "text.capitalize#[\"BRASÍLIA - DF\",{\"upperCaseWords\":[]}]",
          "args": [
            "BRASÍLIA - DF",
            {
              "upperCaseWords": []
            }
          ],
          "expect": {
            "returns": "Brasília - DF"
          },
          "note": "JavaScript's own test: when a state code ends the value after a spaced hyphen, an en dash or a comma, the Correios' 'Cidade – UF'"
        },
        {
          "id": "text.capitalize#[\"recife - PE\"]",
          "args": [
            "recife - PE"
          ],
          "expect": {
            "returns": "Recife - PE"
          }
        },
        {
          "id": "text.capitalize#[\"rs - centro\"]",
          "args": [
            "rs - centro"
          ],
          "expect": {
            "returns": "Rs - Centro"
          },
          "note": "JavaScript's own test: when a state code after those separators is not the last word, or the separator is not spaced, it is an ordinary word"
        },
        {
          "id": "text.capitalize#[\"brasília - df sul\"]",
          "args": [
            "brasília - df sul"
          ],
          "expect": {
            "returns": "Brasília - Df Sul"
          },
          "note": "JavaScript's own test: when a state code after those separators is not the last word, or the separator is not spaced, it is an ordinary word"
        },
        {
          "id": "text.capitalize#[\"brasília-df\"]",
          "args": [
            "brasília-df"
          ],
          "expect": {
            "returns": "Brasília-Df"
          },
          "note": "JavaScript's own test: when a state code after those separators is not the last word, or the separator is not spaced, it is an ordinary word"
        },
        {
          "id": "text.capitalize#[\"brasília -df\"]",
          "args": [
            "brasília -df"
          ],
          "expect": {
            "returns": "Brasília -Df"
          },
          "note": "JavaScript's own test: when a state code after those separators is not the last word, or the separator is not spaced, it is an ordinary word"
        },
        {
          "id": "text.capitalize#[\"brasília,df\"]",
          "args": [
            "brasília,df"
          ],
          "expect": {
            "returns": "Brasília,Df"
          },
          "note": "JavaScript's own test: when a state code after those separators is not the last word, or the separator is not spaced, it is an ordinary word"
        },
        {
          "id": "text.capitalize#[\"brasília - br\"]",
          "args": [
            "brasília - br"
          ],
          "expect": {
            "returns": "Brasília - Br"
          },
          "note": "JavaScript's own test: when a state code after those separators is not the last word, or the separator is not spaced, it is an ordinary word"
        },
        {
          "id": "text.capitalize#[\"- df\"]",
          "args": [
            "- df"
          ],
          "expect": {
            "returns": "- Df"
          },
          "note": "JavaScript's own test: when a state code after those separators is not the last word, or the separator is not spaced, it is an ordinary word"
        },
        {
          "id": "text.capitalize#[\"rua xxiv de maio\"]",
          "args": [
            "rua xxiv de maio"
          ],
          "expect": {
            "returns": "Rua XXIV de Maio"
          },
          "note": "from the maintainer briefing, #593: roman numerals up to XXXIX; 2.4.0 stopped at XXIII"
        },
        {
          "id": "text.capitalize#[\"rua xxv de março\"]",
          "args": [
            "rua xxv de março"
          ],
          "expect": {
            "returns": "Rua XXV de Março"
          },
          "note": "JavaScript's own test: when the value carries a roman numeral"
        },
        {
          "id": "text.capitalize#[\"praça xxix de junho\"]",
          "args": [
            "praça xxix de junho"
          ],
          "expect": {
            "returns": "Praça XXIX de Junho"
          },
          "note": "JavaScript's own test: when the value carries a roman numeral"
        },
        {
          "id": "text.capitalize#[\"rua xxxi de março\"]",
          "args": [
            "rua xxxi de março"
          ],
          "expect": {
            "returns": "Rua XXXI de Março"
          },
          "note": "JavaScript's own test: when the value carries a roman numeral"
        },
        {
          "id": "text.capitalize#[\"capítulo xxxix\"]",
          "args": [
            "capítulo xxxix"
          ],
          "expect": {
            "returns": "Capítulo XXXIX"
          },
          "note": "JavaScript's own test: when the value carries a roman numeral"
        },
        {
          "id": "text.capitalize#[\"rua xxiii\"]",
          "args": [
            "rua xxiii"
          ],
          "expect": {
            "returns": "Rua XXIII"
          }
        },
        {
          "id": "text.capitalize#[\"capítulo xl\"]",
          "args": [
            "capítulo xl"
          ],
          "expect": {
            "returns": "Capítulo Xl"
          },
          "note": "JavaScript's own test: when a roman numeral is past XXXIX, uses a letter other than I, V and X, or is VI, it is an ordinary word"
        },
        {
          "id": "text.capitalize#[\"eu li o livro\"]",
          "args": [
            "eu li o livro"
          ],
          "expect": {
            "returns": "Eu Li o Livro"
          },
          "note": "JavaScript's own test: when a roman numeral is past XXXIX, uses a letter other than I, V and X, or is VI, it is an ordinary word"
        },
        {
          "id": "text.capitalize#[\"casa para todos\"]",
          "args": [
            "casa para todos"
          ],
          "expect": {
            "returns": "Casa para Todos"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain the contracted and the other prepositions; changed in 2.5.0 (#615): para stays lower case"
        },
        {
          "id": "text.capitalize#[\"ASSOCIAÇÃO AO LADO\"]",
          "args": [
            "ASSOCIAÇÃO AO LADO"
          ],
          "expect": {
            "returns": "Associação ao Lado"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain the contracted and the other prepositions; changed in 2.5.0 (#615): ao stays lower case"
        },
        {
          "id": "text.capitalize#[\"banco às margens\"]",
          "args": [
            "banco às margens"
          ],
          "expect": {
            "returns": "Banco às Margens"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain the contracted and the other prepositions; changed in 2.5.0 (#615): às stays lower case"
        },
        {
          "id": "text.capitalize#[\"carta pelo correio\"]",
          "args": [
            "carta pelo correio"
          ],
          "expect": {
            "returns": "Carta pelo Correio"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain the contracted and the other prepositions; changed in 2.5.0 (#615): pelo stays lower case"
        },
        {
          "id": "text.capitalize#[\"vista sobre o mar\"]",
          "args": [
            "vista sobre o mar"
          ],
          "expect": {
            "returns": "Vista sobre o Mar"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain the contracted and the other prepositions; changed in 2.5.0 (#615): sobre stays lower case"
        },
        {
          "id": "text.capitalize#[\"ponte sob a chuva\"]",
          "args": [
            "ponte sob a chuva"
          ],
          "expect": {
            "returns": "Ponte sob a Chuva"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain the contracted and the other prepositions; changed in 2.5.0 (#615): sob stays lower case"
        },
        {
          "id": "text.capitalize#[\"dias até a festa\"]",
          "args": [
            "dias até a festa"
          ],
          "expect": {
            "returns": "Dias até a Festa"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain the contracted and the other prepositions; changed in 2.5.0 (#615): até stays lower case"
        },
        {
          "id": "text.capitalize#[\"mora num sítio\"]",
          "args": [
            "mora num sítio"
          ],
          "expect": {
            "returns": "Mora num Sítio"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain the contracted and the other prepositions; changed in 2.5.0 (#615): num stays lower case"
        },
        {
          "id": "text.capitalize#[\"perante o juiz\"]",
          "args": [
            "perante o juiz"
          ],
          "expect": {
            "returns": "Perante o Juiz"
          },
          "note": "JavaScript's own test: should capitalize when the value does contain the contracted and the other prepositions; changed in 2.5.0 (#615): perante stays lower case"
        },
        {
          "id": "text.capitalize#[\"sobre a mesa\"]",
          "args": [
            "sobre a mesa"
          ],
          "expect": {
            "returns": "Sobre a Mesa"
          },
          "note": "JavaScript's own test: when a preposition is the first word, the last word or is followed by punctuation"
        },
        {
          "id": "text.capitalize#[\"até\"]",
          "args": [
            "até"
          ],
          "expect": {
            "returns": "Até"
          },
          "note": "JavaScript's own test: when a preposition is the first word, the last word or is followed by punctuation"
        },
        {
          "id": "text.capitalize#[\"rua para, 10\"]",
          "args": [
            "rua para, 10"
          ],
          "expect": {
            "returns": "Rua Para, 10"
          },
          "note": "JavaScript's own test: when a preposition is the first word, the last word or is followed by punctuation"
        },
        {
          "id": "text.capitalize#[\"desterro de entre rios\"]",
          "args": [
            "desterro de entre rios"
          ],
          "expect": {
            "returns": "Desterro de Entre Rios"
          },
          "note": "JavaScript's own test: when the name is a municipality that holds a word of the preposition list"
        },
        {
          "id": "text.capitalize#[\"ENTRE RIOS DE MINAS\"]",
          "args": [
            "ENTRE RIOS DE MINAS"
          ],
          "expect": {
            "returns": "Entre Rios de Minas"
          },
          "note": "JavaScript's own test: when the name is a municipality that holds a word of the preposition list"
        },
        {
          "id": "text.capitalize#[\"empresa s.a\"]",
          "args": [
            "empresa s.a"
          ],
          "expect": {
            "returns": "Empresa S.A"
          },
          "note": "JavaScript's own test: when the company designation is written S.A with or without the final dot; changed in 2.5.0 (#615): S.A without the final dot is upper case"
        },
        {
          "id": "text.capitalize#[\"empresa s.a.\"]",
          "args": [
            "empresa s.a."
          ],
          "expect": {
            "returns": "Empresa S.A."
          },
          "note": "JavaScript's own test: when the company designation is written S.A with or without the final dot"
        },
        {
          "id": "text.capitalize#[\"empresa sa\"]",
          "args": [
            "empresa sa"
          ],
          "expect": {
            "returns": "Empresa Sa"
          },
          "note": "JavaScript's own test: when the company designation is written S.A with or without the final dot"
        },
        {
          "id": "text.capitalize#[\"  josé   maria  \"]",
          "args": [
            "  josé   maria  "
          ],
          "expect": {
            "returns": "José Maria"
          },
          "note": "JavaScript docs example: every run of whitespace collapses into one space"
        }
      ]
    },
    {
      "id": "text.removeAccents",
      "level": "extended",
      "summary": "Removes diacritical marks (accents, tildes, cedillas) from a string.",
      "description": "Removes diacritical marks (accents, tildes, cedillas) from a string.\n\n- The function decomposes every character (Unicode NFD) and drops every combining mark (general category M), so accents from any script go.\n- Letters with no decomposition into a base letter and a mark stay as they are (`ß`, `ø`, `æ`). A `value` that is not a string returns an empty string.",
      "params": [
        {
          "name": "value",
          "type": "string"
        }
      ],
      "returns": "string",
      "cases": [
        {
          "id": "text.removeAccents#[\"São Paulo\"]",
          "args": [
            "São Paulo"
          ],
          "expect": {
            "returns": "Sao Paulo"
          }
        },
        {
          "id": "text.removeAccents#[\"Açaí\"]",
          "args": [
            "Açaí"
          ],
          "expect": {
            "returns": "Acai"
          }
        },
        {
          "id": "text.removeAccents#[\"Piauí\"]",
          "args": [
            "Piauí"
          ],
          "expect": {
            "returns": "Piaui"
          }
        },
        {
          "id": "text.removeAccents#no-accents",
          "args": [
            "Brasil"
          ],
          "expect": {
            "returns": "Brasil"
          }
        },
        {
          "id": "text.removeAccents#keeps-punctuation",
          "args": [
            "São Paulo, SP - 2024!"
          ],
          "expect": {
            "returns": "Sao Paulo, SP - 2024!"
          }
        },
        {
          "id": "text.removeAccents#empty",
          "args": [
            ""
          ],
          "expect": {
            "returns": ""
          }
        },
        {
          "id": "text.removeAccents#[\"a᪰\"]",
          "args": [
            "a᪰"
          ],
          "expect": {
            "returns": "a"
          },
          "note": "JavaScript's own test: should remove combining marks outside the Latin block"
        },
        {
          "id": "text.removeAccents#[\"क़\"]",
          "args": [
            "क़"
          ],
          "expect": {
            "returns": "क"
          },
          "note": "JavaScript's own test: should remove combining marks outside the Latin block"
        },
        {
          "id": "text.removeAccents#[\"Você\"]",
          "args": [
            "Você"
          ],
          "expect": {
            "returns": "Voce"
          },
          "note": "JavaScript's own test: should remove a circumflex accent"
        },
        {
          "id": "text.removeAccents#[\"à\"]",
          "args": [
            "à"
          ],
          "expect": {
            "returns": "a"
          },
          "note": "JavaScript's own test: should remove a grave accent"
        },
        {
          "id": "text.removeAccents#[\"Ceará\"]",
          "args": [
            "Ceará"
          ],
          "expect": {
            "returns": "Ceara"
          },
          "note": "JavaScript's own test: should remove multiple accents in the same word"
        }
      ]
    }
  ]
}
