Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  overlapping.toml   Sprache: unbekannt

 
# NOTE: We define a number of tests where the *match* kind is 'leftmost-first'
# but the *search* kind is 'overlapping'. This is a somewhat nonsensical
# combination and can produce odd results. Nevertheless, those results should
# be consistent so we test them here. (At the time of writing this note, I
# hadn't yet decided whether to make 'leftmost-first' with 'overlapping' result
# in unspecified behavior.)

# This demonstrates how a full overlapping search is obvious quadratic. This
# regex reports a match for every substring in the haystack.
[[test]]
name = "ungreedy-dotstar-matches-everything-100"
regex = [".*?"]
haystack = "zzz"
matches = [
  { id = 0, span = [0, 0] },
  { id = 0, span = [1, 1] },
  { id = 0, span = [0, 1] },
  { id = 0, span = [2, 2] },
  { id = 0, span = [1, 2] },
  { id = 0, span = [0, 2] },
  { id = 0, span = [3, 3] },
  { id = 0, span = [2, 3] },
  { id = 0, span = [1, 3] },
  { id = 0, span = [0, 3] },
]
match-kind = "all"
search-kind = "overlapping"

[[test]]
name = "greedy-dotstar-matches-everything-100"
regex = [".*"]
haystack = "zzz"
matches = [
  { id = 0, span = [0, 0] },
  { id = 0, span = [1, 1] },
  { id = 0, span = [0, 1] },
  { id = 0, span = [2, 2] },
  { id = 0, span = [1, 2] },
  { id = 0, span = [0, 2] },
  { id = 0, span = [3, 3] },
  { id = 0, span = [2, 3] },
  { id = 0, span = [1, 3] },
  { id = 0, span = [0, 3] },
]
match-kind = "all"
search-kind = "overlapping"

[[test]]
name = "repetition-plus-leftmost-first-100"
regex = 'a+'
haystack = "aaa"
matches = [[0, 1], [1, 2], [0, 2], [2, 3], [1, 3], [0, 3]]
match-kind = "leftmost-first"
search-kind = "overlapping"

[[test]]
name = "repetition-plus-leftmost-first-110"
regex = '☃+'
haystack = "☃☃☃"
matches = [[0, 3], [3, 6], [0, 6], [6, 9], [3, 9], [0, 9]]
match-kind = "leftmost-first"
search-kind = "overlapping"

[[test]]
name = "repetition-plus-all-100"
regex = 'a+'
haystack = "aaa"
matches = [[0, 1], [1, 2], [0, 2], [2, 3], [1, 3], [0, 3]]
match-kind = "all"
search-kind = "overlapping"

[[test]]
name = "repetition-plus-all-110"
regex = '☃+'
haystack = "☃☃☃"
matches = [[0, 3], [3, 6], [0, 6], [6, 9], [3, 9], [0, 9]]
match-kind = "all"
search-kind = "overlapping"

[[test]]
name = "repetition-plus-leftmost-first-200"
regex = '(abc)+'
haystack = "zzabcabczzabc"
matches = [
  [[2, 5], [2, 5]],
  [[5, 8], [5, 8]],
  [[2, 8], [5, 8]],
]
match-kind = "leftmost-first"
search-kind = "overlapping"

[[test]]
name = "repetition-plus-all-200"
regex = '(abc)+'
haystack = "zzabcabczzabc"
matches = [
  [[2, 5], [2, 5]],
  [[5, 8], [5, 8]],
  [[2, 8], [5, 8]],
  [[10, 13], [10, 13]],
]
match-kind = "all"
search-kind = "overlapping"

[[test]]
name = "repetition-star-leftmost-first-100"
regex = 'a*'
haystack = "aaa"
matches = [
  [0, 0],
  [1, 1],
  [0, 1],
  [2, 2],
  [1, 2],
  [0, 2],
  [3, 3],
  [2, 3],
  [1, 3],
  [0, 3],
]
match-kind = "leftmost-first"
search-kind = "overlapping"

[[test]]
name = "repetition-star-all-100"
regex = 'a*'
haystack = "aaa"
matches = [
  [0, 0],
  [1, 1],
  [0, 1],
  [2, 2],
  [1, 2],
  [0, 2],
  [3, 3],
  [2, 3],
  [1, 3],
  [0, 3],
]
match-kind = "all"
search-kind = "overlapping"

[[test]]
name = "repetition-star-leftmost-first-200"
regex = '(abc)*'
haystack = "zzabcabczzabc"
matches = [
  [[0, 0], []],
]
match-kind = "leftmost-first"
search-kind = "overlapping"

[[test]]
name = "repetition-star-all-200"
regex = '(abc)*'
haystack = "zzabcabczzabc"
matches = [
  [[0, 0], []],
  [[1, 1], []],
  [[2, 2], []],
  [[3, 3], []],
  [[4, 4], []],
  [[5, 5], []],
  [[2, 5], [2, 5]],
  [[6, 6], []],
  [[7, 7], []],
  [[8, 8], []],
  [[5, 8], [5, 8]],
  [[2, 8], [5, 8]],
  [[9, 9], []],
  [[10, 10], []],
  [[11, 11], []],
  [[12, 12], []],
  [[13, 13], []],
  [[10, 13], [10, 13]],
]
match-kind = "all"
search-kind = "overlapping"

[[test]]
name = "start-end-rep-leftmost-first"
regex = '(^$)*'
haystack = "abc"
matches = [
  [[0, 0], []],
]
match-kind = "leftmost-first"
search-kind = "overlapping"

[[test]]
name = "start-end-rep-all"
regex = '(^$)*'
haystack = "abc"
matches = [
  [[0, 0], []],
  [[1, 1], []],
  [[2, 2], []],
  [[3, 3], []],
]
match-kind = "all"
search-kind = "overlapping"

[[test]]
name = "alt-leftmost-first-100"
regex = 'abc|a'
haystack = "zzabcazzaabc"
matches = [[2, 3], [2, 5]]
match-kind = "leftmost-first"
search-kind = "overlapping"

[[test]]
name = "alt-all-100"
regex = 'abc|a'
haystack = "zzabcazzaabc"
matches = [[2, 3], [2, 5], [5, 6], [8, 9], [9, 10], [9, 12]]
match-kind = "all"
search-kind = "overlapping"

[[test]]
name = "empty-000"
regex = ""
haystack = "abc"
matches = [[0, 0], [1, 1], [2, 2], [3, 3]]
match-kind = "all"
search-kind = "overlapping"

[[test]]
name = "empty-alt-000"
regex = "|b"
haystack = "abc"
matches = [[0, 0], [1, 1], [2, 2], [1, 2], [3, 3]]
match-kind = "all"
search-kind = "overlapping"

[[test]]
name = "empty-alt-010"
regex = "b|"
haystack = "abc"
matches = [[0, 0], [1, 1], [2, 2], [1, 2], [3, 3]]
match-kind = "all"
search-kind = "overlapping"

[[test]]
# See: https://github.com/rust-lang/regex/issues/484
name = "iter1-bytes"
regex = ''
haystack = "☃"
matches = [[0, 0], [1, 1], [2, 2], [3, 3]]
utf8 = false
match-kind = "all"
search-kind = "overlapping"

[[test]]
# See: https://github.com/rust-lang/regex/issues/484
name = "iter1-utf8"
regex = ''
haystack = "☃"
matches = [[0, 0], [3, 3]]
match-kind = "all"
search-kind = "overlapping"

[[test]]
name = "iter1-incomplete-utf8"
regex = ''
haystack = '\xE2\x98'  # incomplete snowman
matches = [[0, 0], [1, 1], [2, 2]]
match-kind = "all"
search-kind = "overlapping"
unescape = true
utf8 = false

[[test]]
name = "scratch"
regex = ['sam', 'samwise']
haystack = "samwise"
matches = [
  { id = 0, span = [0, 3] },
]
match-kind = "leftmost-first"
search-kind = "overlapping"

[ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge