From 341cf4fe45bb56677f0b42e287738999fb8a1ac5 Mon Sep 17 00:00:00 2001 From: natsuoto <279971144+natsuoto@users.noreply.github.com> Date: Wed, 1 Jul 2026 16:11:09 +0530 Subject: feat: .at_most(n) quantifier closes the symmetry gap with at_least/exactly/between --- tests/builder/builder.test.py | 6 ++++++ tests/builder/validation.test.py | 5 +++++ 2 files changed, 11 insertions(+) (limited to 'tests/builder') diff --git a/tests/builder/builder.test.py b/tests/builder/builder.test.py index 062e1ae..33aa17d 100644 --- a/tests/builder/builder.test.py +++ b/tests/builder/builder.test.py @@ -348,6 +348,12 @@ def test_at_least(): regex_compilation("\\w{3,}", expr) +def test_at_most(): + expr = RegexBuilder().at_most(3).word() + regex_equality("\\w{0,3}", expr) + regex_compilation("\\w{0,3}", expr) + + def test_between(): expr = RegexBuilder().between(3, 5).word() regex_equality("\\w{3,5}", expr) diff --git a/tests/builder/validation.test.py b/tests/builder/validation.test.py index e4898ad..53128c5 100644 --- a/tests/builder/validation.test.py +++ b/tests/builder/validation.test.py @@ -109,6 +109,11 @@ def test_at_least_non_positive_raises(): RegexBuilder().at_least(-1).digit() +def test_at_most_non_positive_raises(): + with pytest.raises(MustBePositiveIntegerError): + RegexBuilder().at_most(0).digit() + + def test_between_negative_lower_raises(): with pytest.raises(MustBeIntegerGreaterThanZeroError): RegexBuilder().between(-1, 5).digit() -- cgit v1.2.3