Skip to content

Instantly share code, notes, and snippets.

@opparco
Created September 15, 2020 07:29
Show Gist options
  • Save opparco/2d452f12f21102b5b6c28077a7309bb1 to your computer and use it in GitHub Desktop.
Save opparco/2d452f12f21102b5b6c28077a7309bb1 to your computer and use it in GitHub Desktop.
diff --git a/lib/bcdice/user_defined_dice_table.rb b/lib/bcdice/user_defined_dice_table.rb
index 11c8938..ca2b086 100644
--- a/lib/bcdice/user_defined_dice_table.rb
+++ b/lib/bcdice/user_defined_dice_table.rb
@@ -52,7 +52,7 @@ module BCDice
return false
end
- index_list = @rows.map(&:to_i).unique.sort
+ index_list = @rows.map(&:to_i).uniq.sort
case @type
when /^\d+D\d+$/
@@ -118,7 +118,7 @@ module BCDice
return index_list == expected_index
end
- def valid_d66_sort?
+ def valid_d66_sort?(index_list)
if index_list.size != 21
return false
end
diff --git a/test/test_user_defined_dice_table.rb b/test/test_user_defined_dice_table.rb
index ddf9459..2a099cd 100644
--- a/test/test_user_defined_dice_table.rb
+++ b/test/test_user_defined_dice_table.rb
@@ -36,7 +36,27 @@ class TestUserDefinedDiceTable < Test::Unit::TestCase
@text_d66a = <<~TEXT
ソート昇順表
D66a
+ 11:v
+ 12:v
+ 13:v
+ 14:v
+ 15:v
16:いちろく
+ 22:v
+ 23:v
+ 24:v
+ 25:v
+ 26:v
+ 33:v
+ 34:v
+ 35:v
+ 36:v
+ 44:v
+ 45:v
+ 46:v
+ 55:v
+ 56:v
+ 66:v
TEXT
@text_d66d = <<~TEXT
@@ -44,6 +64,40 @@ class TestUserDefinedDiceTable < Test::Unit::TestCase
D66d
61:ろくいち
TEXT
+
+ # 間違い
+ @text_d66a_wrong = <<~TEXT
+ ソート降順表
+ D66a
+ 61:ろくいち
+ TEXT
+
+ # 間違い
+ @text_d66d_wrong = <<~TEXT
+ ソート昇順表
+ D66d
+ 11:v
+ 12:v
+ 13:v
+ 14:v
+ 15:v
+ 16:いちろく
+ 22:v
+ 23:v
+ 24:v
+ 25:v
+ 26:v
+ 33:v
+ 34:v
+ 35:v
+ 36:v
+ 44:v
+ 45:v
+ 46:v
+ 55:v
+ 56:v
+ 66:v
+ TEXT
end
def test_1d6_1
@@ -97,6 +151,7 @@ class TestUserDefinedDiceTable < Test::Unit::TestCase
def test_d66a_16
table = BCDice::UserDefinedDiceTable.new(@text_d66a)
+ assert(table.valid?)
table.randomizer = RandomizerMock.new([[1, 6], [6, 6]])
assert_equal("ソート昇順表(16) > いちろく", table.roll())
@@ -104,6 +159,7 @@ class TestUserDefinedDiceTable < Test::Unit::TestCase
def test_d66a_61
table = BCDice::UserDefinedDiceTable.new(@text_d66a)
+ assert(table.valid?)
table.randomizer = RandomizerMock.new([[6, 6], [1, 6]])
assert_equal("ソート昇順表(16) > いちろく", table.roll())
@@ -139,11 +195,21 @@ class TestUserDefinedDiceTable < Test::Unit::TestCase
assert(table.valid?)
end
- def valid_check_3d4_miss_raws
+ def valid_check_3d4_miss_rows
table = BCDice::UserDefinedDiceTable.new(@text_3d4)
assert_false(table.valid?)
end
+ def valid_check_d66a_wrong
+ table = BCDice::UserDefinedDiceTable.new(@text_d66a_wrong)
+ assert_false(table.valid?)
+ end
+
+ def valid_check_d66d_wrong
+ table = BCDice::UserDefinedDiceTable.new(@text_d66d_wrong)
+ assert_false(table.valid?)
+ end
+
def valid_check_invalid_dice_type
text = <<~TEXT
不正な表
@@ -155,7 +221,7 @@ class TestUserDefinedDiceTable < Test::Unit::TestCase
assert_false(table.valid?)
end
- def valid_check_dup_raws
+ def valid_check_dup_rows
text = <<~TEXT
重複あり表
2D4
@@ -172,7 +238,7 @@ class TestUserDefinedDiceTable < Test::Unit::TestCase
assert_false(table.valid?)
end
- def valid_check_outrange_raw
+ def valid_check_outrange_row
text = <<~TEXT
範囲外表
1D4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment