mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Refactor ordering of tests
* Split the sorting types into classes. * Apply the same sorting to method sorting under the parallel test.
This commit is contained in:
parent
44b2e32fb6
commit
c4570acc86
Notes:
git
2021-10-04 23:03:25 +09:00
4 changed files with 157 additions and 78 deletions
|
|
@ -15,4 +15,61 @@ class TestTestUnitSorting < Test::Unit::TestCase
|
|||
f.read
|
||||
}
|
||||
end
|
||||
|
||||
Item = Struct.new(:name)
|
||||
SEED = 0x50975eed
|
||||
|
||||
def make_test_list
|
||||
(1..16).map {"test_%.3x" % rand(0x1000)}.freeze
|
||||
end
|
||||
|
||||
def test_sort_alpha
|
||||
sorter = Test::Unit::Order::Types[:alpha].new(SEED)
|
||||
assert_kind_of(Test::Unit::Order::Types[:sorted], sorter)
|
||||
|
||||
list = make_test_list
|
||||
sorted = list.sort
|
||||
16.times do
|
||||
assert_equal(sorted, sorter.sort_by_string(list))
|
||||
end
|
||||
|
||||
list = list.map {|s| Item.new(s)}.freeze
|
||||
sorted = list.sort_by(&:name)
|
||||
16.times do
|
||||
assert_equal(sorted, sorter.sort_by_name(list))
|
||||
end
|
||||
end
|
||||
|
||||
def test_sort_nosort
|
||||
sorter = Test::Unit::Order::Types[:nosort].new(SEED)
|
||||
|
||||
list = make_test_list
|
||||
16.times do
|
||||
assert_equal(list, sorter.sort_by_string(list))
|
||||
end
|
||||
|
||||
list = list.map {|s| Item.new(s)}.freeze
|
||||
16.times do
|
||||
assert_equal(list, sorter.sort_by_name(list))
|
||||
end
|
||||
end
|
||||
|
||||
def test_sort_random
|
||||
type = Test::Unit::Order::Types[:random]
|
||||
sorter = type.new(SEED)
|
||||
|
||||
list = make_test_list
|
||||
sorted = type.new(SEED).sort_by_string(list).freeze
|
||||
16.times do
|
||||
assert_equal(sorted, sorter.sort_by_string(list))
|
||||
end
|
||||
assert_not_equal(sorted, type.new(SEED+1).sort_by_string(list))
|
||||
|
||||
list = list.map {|s| Item.new(s)}.freeze
|
||||
sorted = sorted.map {|s| Item.new(s)}.freeze
|
||||
16.times do
|
||||
assert_equal(sorted, sorter.sort_by_name(list))
|
||||
end
|
||||
assert_not_equal(sorted, type.new(SEED+1).sort_by_name(list))
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue