home ~ projects ~ socials

Neopolitan Span Attribute Key Test Generator

Time To Make The Tests

I'm refining Neopolitan's parsers. This is a quick script to generate some of the test cases for span attribute keys.

token_string = "~`@^*_>]})"
tokens = list(token_string)


for token in tokens:
  alt_token = "`"
  if token == "`":
    alt_token = "*"
  print(f"""#[case("alfa{token}: bravo", "{token}", "alfa{token}", "bravo")]""")
  print(f"""#[case("alfa{token}bravo: charlie", "{token}", "alfa{token}bravo", "charlie")]""")
  print(f"""#[case("alfa{token}{token}bravo: charlie", "{alt_token}", "alfa{token}{token}bravo", "charlie")]""")
Output:
#[case("alfa~: bravo", "~", "alfa~", "bravo")]
#[case("alfa~bravo: charlie", "~", "alfa~bravo", "charlie")]
#[case("alfa~~bravo: charlie", "`", "alfa~~bravo", "charlie")]
#[case("alfa`: bravo", "`", "alfa`", "bravo")]
#[case("alfa`bravo: charlie", "`", "alfa`bravo", "charlie")]
#[case("alfa``bravo: charlie", "*", "alfa``bravo", "charlie")]
#[case("alfa@: bravo", "@", "alfa@", "bravo")]
#[case("alfa@bravo: charlie", "@", "alfa@bravo", "charlie")]
#[case("alfa@@bravo: charlie", "`", "alfa@@bravo", "charlie")]
#[case("alfa^: bravo", "^", "alfa^", "bravo")]
#[case("alfa^bravo: charlie", "^", "alfa^bravo", "charlie")]
#[case("alfa^^bravo: charlie", "`", "alfa^^bravo", "charlie")]
#[case("alfa*: bravo", "*", "alfa*", "bravo")]
#[case("alfa*bravo: charlie", "*", "alfa*bravo", "charlie")]
#[case("alfa**bravo: charlie", "`", "alfa**bravo", "charlie")]
#[case("alfa_: bravo", "_", "alfa_", "bravo")]
#[case("alfa_bravo: charlie", "_", "alfa_bravo", "charlie")]
#[case("alfa__bravo: charlie", "`", "alfa__bravo", "charlie")]
#[case("alfa>: bravo", ">", "alfa>", "bravo")]
#[case("alfa>bravo: charlie", ">", "alfa>bravo", "charlie")]
#[case("alfa>>bravo: charlie", "`", "alfa>>bravo", "charlie")]
#[case("alfa]: bravo", "]", "alfa]", "bravo")]
#[case("alfa]bravo: charlie", "]", "alfa]bravo", "charlie")]
#[case("alfa]]bravo: charlie", "`", "alfa]]bravo", "charlie")]
#[case("alfa}: bravo", "}", "alfa}", "bravo")]
#[case("alfa}bravo: charlie", "}", "alfa}bravo", "charlie")]
#[case("alfa}}bravo: charlie", "`", "alfa}}bravo", "charlie")]
#[case("alfa): bravo", ")", "alfa)", "bravo")]
#[case("alfa)bravo: charlie", ")", "alfa)bravo", "charlie")]
#[case("alfa))bravo: charlie", "`", "alfa))bravo", "charlie")]
-- end of line --