logic 0.1.5 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 965fd071223b09ac8aa8d4f719408704bdac0e2b
4
- data.tar.gz: c8e46370bc8d75a62a4a4f3409990acc1da9abec
2
+ SHA256:
3
+ metadata.gz: dc59412e7a4c95a2104f101dbe57fd5b9aacc6250ac885b8e64f58f139852bad
4
+ data.tar.gz: 8a97b64638e50d50ee0fd36827afb60e2771cfbf84e61765e435d2e7ac2f8918
5
5
  SHA512:
6
- metadata.gz: 2564f0a1559a6ad21910653098215d575157b852195f24d863706ec930fbddd770c90003dd2a976612a61f02680bf2ec28562ea77457174327dcf95585d017d6
7
- data.tar.gz: ab25c1d65a5691b05b1c6d2032b065c6f9a7bf21842ecfd6955de812ddd2f81afccd985e81757e7e13f221b39cc94afa289db3d16d8af42e33e3b55ecc80961e
6
+ metadata.gz: 185427c28647b5124e6efd34ce2c114ccba5d5e881a411afcb5458ed6c39b5d1addedc816a99414bdfd64df6d4f2f5df9c473a621f4cedb3489a528096f2e244
7
+ data.tar.gz: 18a97e43de0ea689fdb053e8e455f2db7b629fe868d26a8a8940b689bb6ff0ad8dd88e62992efd897f4248e34ebd82fb0bab2d28b46c2d0d4ae9a69281e62659
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2017 Bryan Ash
1
+ Copyright (c) 2019 Bryan Ash
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.rdoc CHANGED
@@ -46,4 +46,4 @@ The syntax understands: 'and', '&&', 'or', '||', 'xor', '^', 'not', '!', and par
46
46
 
47
47
  == Copyright
48
48
 
49
- Copyright (c) 2017 Bryan Ash. See LICENSE for details.
49
+ Copyright (c) 2019 Bryan Ash. See LICENSE for details.
data/lib/integer.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  class Integer
2
-
3
2
  def to_array_of_bits(width)
4
3
  ("%0#{width}b" % self).split(//).map(&:to_i)
5
4
  end
@@ -7,5 +6,4 @@ class Integer
7
6
  def negate
8
7
  self + 1 & 1
9
8
  end
10
-
11
9
  end
@@ -37,13 +37,24 @@ module BinaryDecision
37
37
  include Decision
38
38
 
39
39
  def condition_identifiers
40
- elements.map(&:condition_identifiers).flatten
40
+ elements.flat_map(&:condition_identifiers)
41
41
  end
42
42
 
43
43
  def evaluate(conditions)
44
- left = operand_1.evaluate(conditions)
45
- right = operand_2.evaluate(conditions)
46
- operator.apply(left, right)
44
+ left_value = left.evaluate(conditions)
45
+ return left_value unless tail.elements.any?
46
+
47
+ tail.elements.reduce(left_value) do |value, tail|
48
+ tail.operator.apply(value, tail.operand.evaluate(conditions))
49
+ end
50
+ end
51
+ end
52
+
53
+ module Tail
54
+ def condition_identifiers
55
+ elements.flat_map do |element|
56
+ element.elements.flat_map(&:condition_identifiers)
57
+ end
47
58
  end
48
59
  end
49
60
 
@@ -1,20 +1,36 @@
1
1
  grammar Logic
2
- rule decision
3
- binary_decision / unary_decision
2
+ rule disjunction
3
+ left:conjunction tail:or_tail <BinaryDecision>
4
4
  end
5
5
 
6
- rule binary_decision
7
- operand_1:unary_decision
8
- operator
9
- operand_2:decision <BinaryDecision>
6
+ rule conjunction
7
+ left:primitive tail:and_tail <BinaryDecision>
10
8
  end
11
9
 
12
- rule unary_decision
10
+ rule and_tail
11
+ (operator:and operand:primitive)* <Tail>
12
+ end
13
+
14
+ rule or_tail
15
+ (operator:or operand:conjunction)* <Tail>
16
+ end
17
+
18
+ rule and
19
+ (space 'and' space / space? '&&' space?) <And>
20
+ end
21
+
22
+ rule or
23
+ (space 'or' space / space? '||' space?) <Or>
24
+ /
25
+ (space 'xor' space / space? '^' space?) <Xor>
26
+ end
27
+
28
+ rule primitive
13
29
  negation / condition / parenthesized
14
30
  end
15
31
 
16
32
  rule negation
17
- ('not' space / '!' space?) operand:unary_decision <Negation>
33
+ ('not' space / '!' space?) operand:primitive <Negation>
18
34
  end
19
35
 
20
36
  rule condition
@@ -22,15 +38,7 @@ grammar Logic
22
38
  end
23
39
 
24
40
  rule parenthesized
25
- '(' space? contents:decision space? ')' <Parenthesized>
26
- end
27
-
28
- rule operator
29
- (space 'and' space / space? '&&' space?) <And>
30
- /
31
- (space 'or' space / space? '||' space?) <Or>
32
- /
33
- (space 'xor' space / space? '^' space?) <Xor>
41
+ '(' space? contents:disjunction space? ')' <Parenthesized>
34
42
  end
35
43
 
36
44
  rule space
data/lib/range.rb CHANGED
@@ -1,7 +1,5 @@
1
1
  class Range
2
-
3
2
  def take(number_of_elements)
4
3
  to_a[0,number_of_elements]
5
4
  end
6
-
7
5
  end
data/lib/test_case.rb CHANGED
@@ -2,7 +2,6 @@ require 'integer'
2
2
  require 'range'
3
3
 
4
4
  class TestCase
5
-
6
5
  def initialize(number, condition_count, decision)
7
6
  @condition_value = number - 1
8
7
  @condition_count = condition_count
@@ -15,11 +14,11 @@ class TestCase
15
14
  end
16
15
 
17
16
  def conditions
18
- @conditions ||= (@condition_value).to_array_of_bits(@condition_count)
17
+ @conditions ||= @condition_value.to_array_of_bits(@condition_count)
19
18
  end
20
19
 
21
20
  def number
22
- conditions.join.to_i(base = 2) + 1
21
+ conditions.join.to_i(_base = 2) + 1
23
22
  end
24
23
 
25
24
  def output
@@ -48,5 +47,4 @@ class TestCase
48
47
  def formatted(format)
49
48
  "%2d) %s | %3d\n" % [number, conditions.join(' '), output]
50
49
  end
51
-
52
50
  end
data/lib/test_case_set.rb CHANGED
@@ -1,8 +1,6 @@
1
- require 'array'
2
1
  require 'test_case'
3
2
 
4
3
  class TestCaseSet
5
-
6
4
  def initialize(condition_identifiers, decision)
7
5
  @condition_identifiers = condition_identifiers
8
6
  @decision = decision
@@ -64,5 +62,4 @@ class TestCaseSet
64
62
  output += test_case.formatted(format)
65
63
  end
66
64
  end
67
-
68
65
  end
data/lib/truth_table.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  class TruthTable
2
-
3
2
  def initialize(test_cases)
4
3
  @test_cases = test_cases
5
4
  end
@@ -21,5 +20,4 @@ class TruthTable
21
20
  def formatted_cases
22
21
  @test_cases.formatted("%2d) %s | %3d\n")
23
22
  end
24
-
25
23
  end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Help', type: :aruba do
4
+ it 'shows help given no command line options' do
5
+ run_command 'logic'
6
+ should_see_help
7
+ end
8
+
9
+ it 'shows help given --help' do
10
+ run_command 'logic --help'
11
+ should_see_help
12
+ end
13
+
14
+ it 'shows help given -h' do
15
+ run_command 'logic -h'
16
+ should_see_help
17
+ end
18
+
19
+ def should_see_help
20
+ should_see_output 'Usage: logic [options] <decision>'
21
+ end
22
+ end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'MC/DC Pairs', type: :aruba do
4
+ it 'a single condition' do
5
+ run_command "logic --no-truth-table --mcdc_pairs 'a'"
6
+ should_see_output <<~STR
7
+ a => [[1, 2]]
8
+ STR
9
+ end
10
+
11
+ it 'MC/DC pairs are not mandatory output' do
12
+ run_command "logic --no-truth-table --no-mcdc_pairs 'a'"
13
+ should_not_see_output <<~STR
14
+ a => [[1, 2]]
15
+ STR
16
+ end
17
+
18
+ it 'MC/DC pairs are output by default' do
19
+ run_command "logic --no-truth-table 'a'"
20
+ should_see_output <<~STR
21
+ a => [[1, 2]]
22
+ STR
23
+ end
24
+
25
+ it "'a and b' decision" do
26
+ run_command "logic --no-truth-table --mcdc_pairs 'a and b'"
27
+ should_see_output <<~STR
28
+ a => [[2, 4]]
29
+ b => [[3, 4]]
30
+ STR
31
+ end
32
+
33
+ it "'a or b' decision" do
34
+ run_command "logic --no-truth-table --mcdc_pairs 'a or b'"
35
+ should_see_output <<~STR
36
+ a => [[1, 3]]
37
+ b => [[1, 2]]
38
+ STR
39
+ end
40
+
41
+ it "'a and (b or c)' decision" do
42
+ run_command "logic --no-truth-table --mcdc_pairs 'a and (b or c)'"
43
+ should_see_output <<~STR
44
+ a => [[2, 6], [3, 7], [4, 8]]
45
+ b => [[5, 7]]
46
+ c => [[5, 6]]
47
+ STR
48
+ end
49
+ end
@@ -0,0 +1,148 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Truth Table', type: :aruba do
4
+ it 'input names are related to condition names' do
5
+ run_command "logic Jennifer or Juliette"
6
+ should_see_output <<~STR
7
+ a <= Jennifer
8
+ b <= Juliette
9
+ STR
10
+ end
11
+
12
+ it 'a single condition' do
13
+ run_command "logic --truth_table --no-mcdc-pairs 'a'"
14
+ should_see_output <<~STR
15
+ a <= a
16
+
17
+ a | output
18
+ 1) 0 | 0
19
+ 2) 1 | 1
20
+ STR
21
+ end
22
+
23
+ it 'Truth table output is not mandatory' do
24
+ run_command "logic --no-truth_table 'a'"
25
+ should_not_see_output 'a | output'
26
+ end
27
+
28
+ it 'Truth table is output by default' do
29
+ run_command "logic --no-mcdc-pairs 'a'"
30
+ should_see_output <<~STR
31
+ a <= a
32
+
33
+ a | output
34
+ 1) 0 | 0
35
+ 2) 1 | 1
36
+ STR
37
+ end
38
+
39
+ it 'a negated condition' do
40
+ run_command "logic --truth_table --no-mcdc-pairs 'not a'"
41
+ should_see_output <<~STR
42
+ a <= a
43
+
44
+ a | output
45
+ 1) 0 | 1
46
+ 2) 1 | 0
47
+ STR
48
+ end
49
+
50
+ it "'a or b' decision" do
51
+ run_command "logic --truth_table --no-mcdc-pairs 'a or b'"
52
+ should_see_output <<~STR
53
+ a <= a
54
+ b <= b
55
+
56
+ a b | output
57
+ 1) 0 0 | 0
58
+ 2) 0 1 | 1
59
+ 3) 1 0 | 1
60
+ 4) 1 1 | 1
61
+ STR
62
+ end
63
+
64
+ it "'a xor b' decision" do
65
+ run_command "logic --truth_table --no-mcdc-pairs 'a xor b'"
66
+ should_see_output <<~STR
67
+ a <= a
68
+ b <= b
69
+
70
+ a b | output
71
+ 1) 0 0 | 0
72
+ 2) 0 1 | 1
73
+ 3) 1 0 | 1
74
+ 4) 1 1 | 0
75
+ STR
76
+ end
77
+
78
+ it "'not a or not b' decision" do
79
+ run_command "logic --truth_table --no-mcdc-pairs 'not a or not b'"
80
+ should_see_output <<~STR
81
+ a <= a
82
+ b <= b
83
+
84
+ a b | output
85
+ 1) 0 0 | 1
86
+ 2) 0 1 | 1
87
+ 3) 1 0 | 1
88
+ 4) 1 1 | 0
89
+ STR
90
+ end
91
+
92
+ it "'a or b or c' decision" do
93
+ run_command "logic --truth_table --no-mcdc-pairs 'a or b or c'"
94
+ should_see_output <<~STR
95
+ a <= a
96
+ b <= b
97
+ c <= c
98
+
99
+ a b c | output
100
+ 1) 0 0 0 | 0
101
+ 2) 0 0 1 | 1
102
+ 3) 0 1 0 | 1
103
+ 4) 0 1 1 | 1
104
+ 5) 1 0 0 | 1
105
+ 6) 1 0 1 | 1
106
+ 7) 1 1 0 | 1
107
+ 8) 1 1 1 | 1
108
+ STR
109
+ end
110
+
111
+ it "'a and b and c' decision" do
112
+ run_command "logic --truth_table --no-mcdc-pairs 'a and b and c'"
113
+ should_see_output <<~STR
114
+ a <= a
115
+ b <= b
116
+ c <= c
117
+
118
+ a b c | output
119
+ 1) 0 0 0 | 0
120
+ 2) 0 0 1 | 0
121
+ 3) 0 1 0 | 0
122
+ 4) 0 1 1 | 0
123
+ 5) 1 0 0 | 0
124
+ 6) 1 0 1 | 0
125
+ 7) 1 1 0 | 0
126
+ 8) 1 1 1 | 1
127
+ STR
128
+ end
129
+
130
+ it "'(a and b) or c' decision" do
131
+ run_command "logic --truth_table --no-mcdc-pairs '(a and b) or c'"
132
+ should_see_output <<~STR
133
+ a <= a
134
+ b <= b
135
+ c <= c
136
+
137
+ a b c | output
138
+ 1) 0 0 0 | 0
139
+ 2) 0 0 1 | 1
140
+ 3) 0 1 0 | 0
141
+ 4) 0 1 1 | 1
142
+ 5) 1 0 0 | 0
143
+ 6) 1 0 1 | 1
144
+ 7) 1 1 0 | 1
145
+ 8) 1 1 1 | 1
146
+ STR
147
+ end
148
+ end
@@ -65,17 +65,20 @@ describe LogicParser, :parsing do
65
65
  'A or B' =>
66
66
  { [0, 0] => 0,
67
67
  [0, 1] => 1,
68
- [1, 0] => 1
68
+ [1, 0] => 1,
69
+ [1, 1] => 1
69
70
  },
70
71
  'A || B' =>
71
72
  { [0, 0] => 0,
72
73
  [0, 1] => 1,
73
- [1, 0] => 1
74
+ [1, 0] => 1,
75
+ [1, 1] => 1
74
76
  },
75
77
  'A||B' =>
76
78
  { [0, 0] => 0,
77
79
  [0, 1] => 1,
78
- [1, 0] => 1
80
+ [1, 0] => 1,
81
+ [1, 1] => 1
79
82
  },
80
83
  'A xor B' =>
81
84
  { [0, 0] => 0,
@@ -96,54 +99,126 @@ describe LogicParser, :parsing do
96
99
  [1, 1] => 0
97
100
  },
98
101
  'A and B' =>
99
- { [1, 1] => 1,
102
+ { [0, 0] => 0,
100
103
  [0, 1] => 0,
101
- [1, 0] => 0
104
+ [1, 0] => 0,
105
+ [1, 1] => 1
102
106
  },
103
107
  'A && B' =>
104
- { [1, 1] => 1,
108
+ { [0, 0] => 0,
105
109
  [0, 1] => 0,
106
- [1, 0] => 0
110
+ [1, 0] => 0,
111
+ [1, 1] => 1
107
112
  },
108
113
  'A&&B' =>
109
- { [1, 1] => 1,
114
+ { [0, 0] => 0,
110
115
  [0, 1] => 0,
111
- [1, 0] => 0
116
+ [1, 0] => 0,
117
+ [1, 1] => 1
112
118
  },
113
119
  'A and not B' =>
114
- { [1, 1] => 0,
120
+ { [0, 0] => 0,
115
121
  [0, 1] => 0,
116
- [1, 0] => 1
122
+ [1, 0] => 1,
123
+ [1, 1] => 0
117
124
  },
118
125
  'A or B or C' =>
119
126
  { [0, 0, 0] => 0,
120
- [1, 0, 0] => 1,
127
+ [0, 0, 1] => 1,
121
128
  [0, 1, 0] => 1,
122
- [0, 0, 1] => 1
129
+ [1, 0, 0] => 1,
130
+ [1, 0, 1] => 1,
131
+ [1, 1, 0] => 1,
132
+ [1, 1, 0] => 1,
133
+ [1, 1, 1] => 1,
123
134
  },
124
135
  'A and B and C' =>
125
- { [1, 1, 1] => 1,
136
+ { [0, 0, 0] => 0,
137
+ [0, 0, 1] => 0,
138
+ [0, 1, 0] => 0,
139
+ [1, 0, 0] => 0,
140
+ [1, 0, 1] => 0,
141
+ [1, 1, 0] => 0,
142
+ [1, 1, 0] => 0,
143
+ [1, 1, 1] => 1,
144
+ },
145
+ 'A and B or C' =>
146
+ { [0, 0, 0] => 0,
147
+ [0, 0, 1] => 1,
148
+ [0, 1, 0] => 0,
149
+ [0, 1, 1] => 1,
150
+ [1, 0, 0] => 0,
151
+ [1, 0, 1] => 1,
152
+ [1, 1, 0] => 1,
153
+ [1, 1, 1] => 1
154
+ },
155
+ 'A and B or not C' =>
156
+ { [0, 0, 0] => 1,
157
+ [0, 0, 1] => 0,
158
+ [0, 1, 0] => 1,
126
159
  [0, 1, 1] => 0,
160
+ [1, 0, 0] => 1,
127
161
  [1, 0, 1] => 0,
128
- [1, 1, 0] => 0
162
+ [1, 1, 0] => 1,
163
+ [1, 1, 1] => 1
129
164
  },
130
165
  '(A and B) or C' =>
131
- { [1, 1, 0] => 1,
166
+ { [0, 0, 0] => 0,
167
+ [0, 0, 1] => 1,
132
168
  [0, 1, 0] => 0,
169
+ [0, 1, 1] => 1,
133
170
  [1, 0, 0] => 0,
134
- [0, 0, 1] => 1
171
+ [1, 0, 1] => 1,
172
+ [1, 1, 0] => 1,
173
+ [1, 1, 1] => 1
135
174
  },
136
175
  'A and (B or C)' =>
137
- { [1, 0, 0] => 0,
138
- [1, 1, 0] => 1,
176
+ { [0, 0, 0] => 0,
177
+ [0, 0, 1] => 0,
178
+ [0, 1, 0] => 0,
179
+ [0, 1, 1] => 0,
180
+ [1, 0, 0] => 0,
139
181
  [1, 0, 1] => 1,
140
- [0, 1, 1] => 0
182
+ [1, 1, 0] => 1,
183
+ [1, 1, 1] => 1
141
184
  },
142
185
  '( A and (B or C) )' =>
143
- { [1, 0, 0] => 0,
186
+ { [0, 0, 0] => 0,
187
+ [0, 0, 1] => 0,
188
+ [0, 1, 0] => 0,
189
+ [0, 1, 1] => 0,
190
+ [1, 0, 0] => 0,
191
+ [1, 0, 1] => 1,
144
192
  [1, 1, 0] => 1,
193
+ [1, 1, 1] => 1
194
+ },
195
+ 'A or B and C' =>
196
+ { [0, 0, 0] => 0,
197
+ [0, 0, 1] => 0,
198
+ [0, 1, 0] => 0,
199
+ [0, 1, 1] => 1,
200
+ [1, 0, 0] => 1,
145
201
  [1, 0, 1] => 1,
146
- [0, 1, 1] => 0
202
+ [1, 1, 0] => 1,
203
+ [1, 1, 1] => 1
204
+ },
205
+ 'A or B and C or D' =>
206
+ { [0, 0, 0, 0] => 0,
207
+ [0, 0, 0, 1] => 1,
208
+ [0, 0, 1, 0] => 0,
209
+ [0, 0, 1, 1] => 1,
210
+ [0, 1, 0, 0] => 0,
211
+ [0, 1, 0, 1] => 1,
212
+ [0, 1, 1, 0] => 1,
213
+ [0, 1, 1, 1] => 1,
214
+ [1, 0, 0, 0] => 1,
215
+ [1, 0, 0, 1] => 1,
216
+ [1, 0, 1, 0] => 1,
217
+ [1, 0, 1, 1] => 1,
218
+ [1, 1, 0, 0] => 1,
219
+ [1, 1, 0, 1] => 1,
220
+ [1, 1, 1, 0] => 1,
221
+ [1, 1, 1, 1] => 1
147
222
  }
148
223
  }.each do |logic, cases|
149
224
  describe "'#{logic}'" do
@@ -0,0 +1,7 @@
1
+ require 'aruba/rspec'
2
+
3
+ require 'support/aruba_helpers'
4
+
5
+ RSpec.configure do |c|
6
+ c.include ArubaHelpers
7
+ end
@@ -0,0 +1,11 @@
1
+ module ArubaHelpers
2
+ def should_not_see_output(partial_output)
3
+ expect(last_command_started)
4
+ .to_not have_output(/#{Regexp.quote(partial_output.strip)}/)
5
+ end
6
+
7
+ def should_see_output(partial_output)
8
+ expect(last_command_started)
9
+ .to have_output(/#{Regexp.quote(partial_output.strip)}/)
10
+ end
11
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Ash
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-08 00:00:00.000000000 Z
11
+ date: 2019-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: treetop
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.14'
41
- - !ruby/object:Gem::Dependency
42
- name: cucumber
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '2.4'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '2.4'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rspec
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -78,7 +64,6 @@ files:
78
64
  - LICENSE
79
65
  - README.rdoc
80
66
  - bin/logic
81
- - lib/array.rb
82
67
  - lib/integer.rb
83
68
  - lib/logic_operations.rb
84
69
  - lib/logic_parser.treetop
@@ -86,8 +71,13 @@ files:
86
71
  - lib/test_case.rb
87
72
  - lib/test_case_set.rb
88
73
  - lib/truth_table.rb
74
+ - spec/features/help_spec.rb
75
+ - spec/features/mcdc_pairs_spec.rb
76
+ - spec/features/truth_table_spec.rb
89
77
  - spec/logic_parser_spec.rb
90
78
  - spec/spec.opts
79
+ - spec/spec_helper.rb
80
+ - spec/support/aruba_helpers.rb
91
81
  - spec/test_case_set_spec.rb
92
82
  homepage:
93
83
  licenses:
@@ -109,8 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
99
  - !ruby/object:Gem::Version
110
100
  version: 1.3.6
111
101
  requirements: []
112
- rubyforge_project:
113
- rubygems_version: 2.5.1
102
+ rubygems_version: 3.0.3
114
103
  signing_key:
115
104
  specification_version: 4
116
105
  summary: Taking the pain out of MC/DC testing
data/lib/array.rb DELETED
@@ -1,11 +0,0 @@
1
- class Array
2
-
3
- def count
4
- length
5
- end
6
-
7
- def to_s
8
- inspect
9
- end
10
-
11
- end