source: EcnlProtoTool/trunk/mruby-1.2.0/test/t/enumerable.rb@ 270

Last change on this file since 270 was 270, checked in by coas-nagasima, 7 years ago

mruby版ECNLプロトタイピング・ツールを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-ruby
File size: 3.0 KB
Line 
1##
2# Enumerable ISO Test
3
4assert('Enumerable', '15.3.2') do
5 assert_equal(Module, Enumerable.class)
6end
7
8assert('Enumerable#all?', '15.3.2.2.1') do
9 assert_true([1,2,3].all?)
10 assert_false([1,false,3].all?)
11
12 a = [2,4,6]
13 all = a.all? do |e|
14 e % 2 == 0
15 end
16 assert_true(all)
17
18 a = [2,4,7]
19 all = a.all? do |e|
20 e % 2 == 0
21 end
22 assert_false(all)
23end
24
25assert('Enumerable#any?', '15.3.2.2.2') do
26 assert_true([false,true,false].any?)
27 assert_false([false,false,false].any?)
28
29 a = [1,3,6]
30 any = a.any? do |e|
31 e % 2 == 0
32 end
33 assert_true(any)
34
35 a = [1,3,5]
36 any = a.any? do |e|
37 e % 2 == 0
38 end
39 assert_false(any)
40end
41
42assert('Enumerable#collect', '15.3.2.2.3') do
43 assert_true [1,2,3].collect { |i| i + i } == [2,4,6]
44end
45
46assert('Enumerable#detect', '15.3.2.2.4') do
47 assert_equal 1, [1,2,3].detect() { true }
48 assert_equal 'a', [1,2,3].detect("a") { false }
49end
50
51assert('Array#each_with_index', '15.3.2.2.5') do
52 a = nil
53 b = nil
54
55 [1].each_with_index {|e,i| a = e; b = i}
56
57 assert_equal(1, a)
58 assert_equal(0, b)
59end
60
61assert('Enumerable#entries', '15.3.2.2.6') do
62 assert_equal([1], [1].entries)
63end
64
65assert('Enumerable#find', '15.3.2.2.7') do
66 assert_equal 1, [1,2,3].find() { true }
67 assert_equal 'a', [1,2,3].find("a") { false }
68end
69
70assert('Enumerable#find_all', '15.3.2.2.8') do
71 assert_true [1,2,3,4,5,6,7,8,9].find_all() {|i| i%2 == 0}, [2,4,6,8]
72end
73
74assert('Enumerable#grep', '15.3.2.2.9') do
75 assert_equal [4,5,6], [1,2,3,4,5,6,7,8,9].grep(4..6)
76end
77
78assert('Enumerable#include?', '15.3.2.2.10') do
79 assert_true [1,2,3,4,5,6,7,8,9].include?(5)
80 assert_false [1,2,3,4,5,6,7,8,9].include?(0)
81end
82
83assert('Enumerable#inject', '15.3.2.2.11') do
84 assert_equal 21, [1,2,3,4,5,6].inject() {|s, n| s + n}
85 assert_equal 22, [1,2,3,4,5,6].inject(1) {|s, n| s + n}
86end
87
88assert('Enumerable#map', '15.3.2.2.12') do
89 assert_equal [2,4,6], [1,2,3].map { |i| i + i }
90end
91
92assert('Enumerable#max', '15.3.2.2.13') do
93 a = ['aaa', 'bb', 'c']
94 assert_equal 'c', a.max
95 assert_equal 'aaa', a.max {|i1,i2| i1.length <=> i2.length}
96end
97
98assert('Enumerable#min', '15.3.2.2.14') do
99 a = ['aaa', 'bb', 'c']
100 assert_equal 'aaa', a.min
101 assert_equal 'c', a.min {|i1,i2| i1.length <=> i2.length}
102end
103
104assert('Enumerable#member?', '15.3.2.2.15') do
105 assert_true [1,2,3,4,5,6,7,8,9].member?(5)
106 assert_false [1,2,3,4,5,6,7,8,9].member?(0)
107end
108
109assert('Enumerable#partition', '15.3.2.2.16') do
110 partition = [0,1,2,3,4,5,6,7,8,9].partition do |i|
111 i % 2 == 0
112 end
113 assert_equal [[0,2,4,6,8], [1,3,5,7,9]], partition
114end
115
116assert('Enumerable#reject', '15.3.2.2.17') do
117 reject = [0,1,2,3,4,5,6,7,8,9].reject do |i|
118 i % 2 == 0
119 end
120 assert_equal [1,3,5,7,9], reject
121end
122
123assert('Enumerable#select', '15.3.2.2.18') do
124 assert_equal [2,4,6,8], [1,2,3,4,5,6,7,8,9].select() {|i| i%2 == 0}
125end
126
127assert('Enumerable#sort', '15.3.2.2.19') do
128 assert_equal [1,2,3,4,6,7], [7,3,1,2,6,4].sort
129 assert_equal [7,6,4,3,2,1], [7,3,1,2,6,4].sort {|e1,e2|e2<=>e1}
130end
131
132assert('Enumerable#to_a', '15.3.2.2.20') do
133 assert_equal [1], [1].to_a
134end
Note: See TracBrowser for help on using the repository browser.