aboutsummaryrefslogtreecommitdiffstats
path: root/t/100-increment-decrement.t
diff options
context:
space:
mode:
authorTeddy Wing2021-08-28 18:08:30 +0200
committerTeddy Wing2021-08-28 18:25:23 +0200
commit88cc7f664a2c582c4fb08a4c3f927da7863ce9fc (patch)
treec11f061db5dc42f5174cb615f330aac2c6f0ae0f /t/100-increment-decrement.t
parent924e467583354e6faa179518d90e1d4e7ca89743 (diff)
downloadreadline-incdec-88cc7f664a2c582c4fb08a4c3f927da7863ce9fc.tar.bz2
incdec.pm: Fix an issue where first number wasn't incremented backwards
When `$start_position` was 0 going backwards, the `sed` test command line failed to increment the first number in the line. Can't figure out exactly what was wrong, but there seemed to be a problem with using the `\G` assertion for that test case. Decided to remove `\G` when `$start_position` position is 0 to work around the problem. Not sure if there's a more concise solution to this that wouldn't require me to have two separate subtitution lines. Also simplified the substitution regular expression. It turns out I didn't need the first capture group, and it was incorrect in matching /[^-\d]*/ because we really wanted /(?!-?\d+)/, not either or of the characters in the group. Completely removing it still allows everything to work. Don't remember if I added that when I was still using the substringing algorithm, but whatever happens, it's not necessary now.
Diffstat (limited to 't/100-increment-decrement.t')
-rw-r--r--t/100-increment-decrement.t30
1 files changed, 24 insertions, 6 deletions
diff --git a/t/100-increment-decrement.t b/t/100-increment-decrement.t
index 883a9c2..6fada9b 100644
--- a/t/100-increment-decrement.t
+++ b/t/100-increment-decrement.t
@@ -104,12 +104,6 @@ is(
);
is(
- incdec::incdec("sed -n '39,54p' Alice\'s\ Adventures\ in\ Wonderland.txt ", 1, 3, 1),
- "sed -n '40,54p' Alice\'s\ Adventures\ in\ Wonderland.txt ",
- 'increments the first integer with point at position 3 backward'
-);
-
-is(
incdec::incdec('test -1 ', 1, 7, 1),
'test 0 ',
'increments the negative integer with point at position 7 backward'
@@ -169,4 +163,28 @@ is(
'decrements the second integer by 2 with point at position 9 backward'
);
+is(
+ incdec::incdec("sed -n '39,54p' Alice\'s\ Adventures\ in\ Wonderland.txt ", 1, 3, 1),
+ "sed -n '40,54p' Alice\'s\ Adventures\ in\ Wonderland.txt ",
+ 'increments the first integer with point at position 3 backward'
+);
+
+is(
+ incdec::incdec("sed -n '39,54p' Alice\'s\ Adventures\ in\ Wonderland.txt ", 1, 8, 1),
+ "sed -n '40,54p' Alice\'s\ Adventures\ in\ Wonderland.txt ",
+ 'increments the first integer with point at position 8 backward'
+);
+
+is(
+ incdec::incdec("sed -n '39,54p' Alice\'s\ Adventures\ in\ Wonderland.txt ", -1, 10, 1),
+ "sed -n '38,54p' Alice\'s\ Adventures\ in\ Wonderland.txt ",
+ 'decrements the first integer with point at position 10 backward'
+);
+
+is(
+ incdec::incdec("sed -n '39,54p' Alice\'s\ Adventures\ in\ Wonderland.txt ", 1, 3, 0),
+ "sed -n '40,54p' Alice\'s\ Adventures\ in\ Wonderland.txt ",
+ 'increments the first integer with point at position 3'
+);
+
done_testing;