-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SORT_KEYをテストする #399
SORT_KEYをテストする #399
Conversation
Codecov Report
@@ Coverage Diff @@
## master #399 +/- ##
=======================================
Coverage 94.61% 94.61%
=======================================
Files 280 280
Lines 18591 18591
=======================================
Hits 17590 17590
Misses 1001 1001
Continue to review full report at Codecov.
|
Co-authored-by: Kosuke Yamashita <ochaochaocha3@gmail.com>
気づいていなかったのですが、意外と普通のシステムのソートキーに幅がありましたね。ひらがなから始まって、ひらがな・英数字・半角ドット・半角スペースのいずれかが0個以上続いて、ひらがな・英数字・半角ドットのいずれかで終わる、といった感じでしょうか。 |
だいぶ複雑になりましたが、こちらならば全システム通りました。 diff --git a/test/test_sort_key.rb b/test/test_sort_key.rb
index 1d2a5040..f336eccc 100644
--- a/test/test_sort_key.rb
+++ b/test/test_sort_key.rb
@@ -5,14 +5,14 @@ require "bcdice"
require "bcdice/game_system"
class TestSortKey < Test::Unit::TestCase
- HIRAGANA_BASIC_CHARS = "[あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん]"
+ HIRAGANA_BASIC_CHARS = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん"
data do
BCDice.all_game_systems.map { |s| [s::ID, s::SORT_KEY] }.to_h
end
def test_sort_key(sort_key)
assert_match(
- /\A(?:#{HIRAGANA_BASIC_CHARS}+[\d.A-Za-z]*|国際化:[\w ]+:.+|\*たいすほつと)\z/,
+ /\A(?:[#{HIRAGANA_BASIC_CHARS}][ \d.A-Za-z#{HIRAGANA_BASIC_CHARS}]*[\d.A-Za-z#{HIRAGANA_BASIC_CHARS}]|国際化:[\w ]+:.+|\*たいすほつと)\z/,
sort_key,
"SORT_KEY \"#{sort_key}\" はSORT_KEYの規約に違反しています。規約は docs/dicebot_sort_key.md を参照してください"
) |
迷宮キングダムの基本ルールブックのソートキーに空白が入っていたのがルールからの逸脱だったようなので、上の正規表現をもう少し単純化できそうです。 diff --git a/test/test_sort_key.rb b/test/test_sort_key.rb
index 1d2a5040..e91da2d8 100644
--- a/test/test_sort_key.rb
+++ b/test/test_sort_key.rb
@@ -5,14 +5,14 @@ require "bcdice"
require "bcdice/game_system"
class TestSortKey < Test::Unit::TestCase
- HIRAGANA_BASIC_CHARS = "[あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん]"
+ HIRAGANA_BASIC_CHARS = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん"
data do
BCDice.all_game_systems.map { |s| [s::ID, s::SORT_KEY] }.to_h
end
def test_sort_key(sort_key)
assert_match(
- /\A(?:#{HIRAGANA_BASIC_CHARS}+[\d.A-Za-z]*|国際化:[\w ]+:.+|\*たいすほつと)\z/,
+ /\A(?:[#{HIRAGANA_BASIC_CHARS}][\d.A-Za-z#{HIRAGANA_BASIC_CHARS}]*|国際化:[\w ]+:.+|\*たいすほつと)\z/,
sort_key,
"SORT_KEY \"#{sort_key}\" はSORT_KEYの規約に違反しています。規約は docs/dicebot_sort_key.md を参照してください"
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
これで大丈夫だと思います!
@ochaochaocha3 レビューありがとうございます! |
BCDice 3.1.0であやまったSORT_KEYを混入させてしまったので、仕様に適合するかチェックするかテストします。