Closed DIYJii closed 2 months ago
Option<String>
→Object
の変換処理に問題があった
- Ok(between.unwrap_or_default().into())
+ Ok(between.map(|s|Object::String(s)).unwrap_or_default())
上記対応後
betweenstr("abc", "a", "bc")
とした際に""
ではなくEMPTY
が返ってしまう
// 前文字のみ、後ろ文字のみはOK
assert_equal( betweenstr("abc", "abc") , "")
assert_equal( betweenstr("abc",, "abc") , "")
assert_equal( betweenstr("abc", "a", "bc") , "") // エラー
テスト用スクリプト
dim cnt
patterns = [
["abcabc", "a", "bc"],
["aaaa", "a", "a"]
]
for p in patterns
for flg in [FALSE, TRUE]
for nth in [1,2,-1,-2]
ret = betweenstr(p[0], p[1], p[2], nth, flg)
if ret != "" then
cnt += 1
print "failed on pattern: <#p>, nth: <#nth>, flg: <#flg>"
print ret
print type_of(ret)
endif
next
next
next
print
if cnt then
print "test failed"
else
print "test succeed"
endif
find_all_between
の場合は一部正常であるなどfind_nth_between
との結果に差があるという問題も発覚
よって、以下の方針で修正
find_nth_between
はfind_all_between
の結果からnthに該当する文字列を返すfind_all_between
の実装を修正find_all_between_backward
を新設、逆順の場合にfind_all_between
から呼ぶtest_betweenstr
)に上記テスト用スクリプトと同内容のものを追加""
としていたテストをEMPTY
に修正ウワー、大変そう! 変な物見つけてしまってゴメン。 でも、私的には、文章を扱うアプリでBetweenStrを多用しているので、 事前に他の問題も見つけて貰う切っ掛けになれて良かったです。
On Tue, Jun 4, 2024 at 4:25 PM Joey Takahashi @.***> wrote:
find_all_between の場合は一部正常であるなどfind_nth_betweenとの結果に差があるという問題も発覚 よって、以下の方針で修正
- find_nth_betweenはfind_all_betweenの結果からnthに該当する文字列を返す
- find_all_betweenの実装を修正
- find_all_between_backwardを新設、逆順の場合にfind_all_betweenから呼ぶ
- テスト(test_betweenstr)に上記テスト用スクリプトと同内容のものを追加
- 該当なしの結果を""としていたテストをEMPTYに修正
— Reply to this email directly, view it on GitHub https://github.com/stuncloud/UWSCR/issues/180#issuecomment-2146800118, or unsubscribe https://github.com/notifications/unsubscribe-auth/BH6AXYQPZ5JWKNW6WNHL3NDZFVTXXAVCNFSM6AAAAABIXVGUWKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBWHAYDAMJRHA . You are receiving this because you authored the thread.Message ID: @.***>
@DIYJii もう直せたので大丈夫です この修正によりコードがかなりスッキリして良かったです さすがにもうバグは出ない…と思いたいですねぇ… (betweenstrは既に何度もバグ修正が繰り返されているほどにバグが出やすい傾向がある)
概要
表題の通り
再現スクリプト
再現手順
No response
バージョン
1.0.1
不具合発生環境
Windows 10