Skip to content

Commit e29a150

Browse files
committed
Increase precision to match what's provided by Simplecov results
1 parent 4f45fbd commit e29a150

File tree

2 files changed

+24
-18
lines changed

2 files changed

+24
-18
lines changed

lib/simplecov-cobertura.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ def resolve_filename(filename)
160160
end
161161

162162
def extract_rate(percent)
163-
(percent / 100).round(2).to_s
163+
(percent / 100).round(4).to_s
164164
end
165165

166166
def project_root

test/simplecov-cobertura_test.rb

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,13 @@ def setup
1717
[:if, 3, 5, 4, 5, 26] =>
1818
{[:then, 4, 5, 16, 5, 20] => 1, [:else, 5, 5, 23, 5, 26] => 0},
1919
[:if, 6, 7, 4, 11, 7] =>
20-
{[:then, 7, 8, 6, 8, 10] => 0, [:else, 8, 10, 6, 10, 9] => 1}
20+
{[:then, 7, 8, 6, 8, 10] => 0, [:else, 8, 10, 6, 10, 9] => 1},
21+
[:if, 9, 12, 4, 12, 15] =>
22+
{[:then, 10, 12, 6, 12, 10] => 1, [:else, 11, 12, 13, 12, 15] => 0},
23+
[:if, 12, 13, 4, 13, 20] =>
24+
{[:then, 13, 13, 6, 13, 15] => 1, [:else, 14, 13, 18, 13, 20] => 0},
25+
[:if, 15, 15, 4, 15, 25] =>
26+
{[:then, 16, 15, 6, 15, 20] => 0, [:else, 17, 15, 23, 15, 25] => 0}
2127
}
2228
}
2329
})
@@ -65,12 +71,12 @@ def test_no_groups
6571
doc = Nokogiri::XML::Document.parse(xml)
6672

6773
coverage = doc.xpath '/coverage'
68-
assert_equal '0.86', coverage.attribute('line-rate').value
69-
assert_equal '0.5', coverage.attribute('branch-rate').value
74+
assert_equal '0.8571', coverage.attribute('line-rate').value
75+
assert_equal '0.4167', coverage.attribute('branch-rate').value
7076
assert_equal '6', coverage.attribute('lines-covered').value
7177
assert_equal '7', coverage.attribute('lines-valid').value
72-
assert_equal '3', coverage.attribute('branches-covered').value
73-
assert_equal '6', coverage.attribute('branches-valid').value
78+
assert_equal '5', coverage.attribute('branches-covered').value
79+
assert_equal '12', coverage.attribute('branches-valid').value
7480
assert_equal '0', coverage.attribute('complexity').value
7581
assert_equal '0', coverage.attribute('version').value
7682
assert_not_empty coverage.attribute('timestamp').value
@@ -83,17 +89,17 @@ def test_no_groups
8389
assert_equal 1, packages.length
8490
package = packages.first
8591
assert_equal 'simplecov-cobertura', package.attribute('name').value
86-
assert_equal '0.86', package.attribute('line-rate').value
87-
assert_equal '0.5', package.attribute('branch-rate').value
92+
assert_equal '0.8571', package.attribute('line-rate').value
93+
assert_equal '0.4167', package.attribute('branch-rate').value
8894
assert_equal '0', package.attribute('complexity').value
8995

9096
classes = doc.xpath '/coverage/packages/package/classes/class'
9197
assert_equal 1, classes.length
9298
clazz = classes.first
9399
assert_equal 'test/simplecov-cobertura_test.rb', clazz.attribute('name').value
94100
assert_equal 'test/simplecov-cobertura_test.rb', clazz.attribute('filename').value
95-
assert_equal '0.86', clazz.attribute('line-rate').value
96-
assert_equal '0.5', clazz.attribute('branch-rate').value
101+
assert_equal '0.8571', clazz.attribute('line-rate').value
102+
assert_equal '0.4167', clazz.attribute('branch-rate').value
97103
assert_equal '0', clazz.attribute('complexity').value
98104

99105
lines = doc.xpath '/coverage/packages/package/classes/class/lines/line'
@@ -115,12 +121,12 @@ def test_groups
115121
doc = Nokogiri::XML::Document.parse(xml)
116122

117123
coverage = doc.xpath '/coverage'
118-
assert_equal '0.86', coverage.attribute('line-rate').value
119-
assert_equal '0.5', coverage.attribute('branch-rate').value
124+
assert_equal '0.8571', coverage.attribute('line-rate').value
125+
assert_equal '0.4167', coverage.attribute('branch-rate').value
120126
assert_equal '6', coverage.attribute('lines-covered').value
121127
assert_equal '7', coverage.attribute('lines-valid').value
122-
assert_equal '3', coverage.attribute('branches-covered').value
123-
assert_equal '6', coverage.attribute('branches-valid').value
128+
assert_equal '5', coverage.attribute('branches-covered').value
129+
assert_equal '12', coverage.attribute('branches-valid').value
124130
assert_equal '0', coverage.attribute('complexity').value
125131
assert_equal '0', coverage.attribute('version').value
126132
assert_not_empty coverage.attribute('timestamp').value
@@ -133,17 +139,17 @@ def test_groups
133139
assert_equal 1, packages.length
134140
package = packages.first
135141
assert_equal 'test_group', package.attribute('name').value
136-
assert_equal '0.86', package.attribute('line-rate').value
137-
assert_equal '0.5', package.attribute('branch-rate').value
142+
assert_equal '0.8571', package.attribute('line-rate').value
143+
assert_equal '0.4167', package.attribute('branch-rate').value
138144
assert_equal '0', package.attribute('complexity').value
139145

140146
classes = doc.xpath '/coverage/packages/package/classes/class'
141147
assert_equal 1, classes.length
142148
clazz = classes.first
143149
assert_equal 'test/simplecov-cobertura_test.rb', clazz.attribute('name').value
144150
assert_equal 'test/simplecov-cobertura_test.rb', clazz.attribute('filename').value
145-
assert_equal '0.86', clazz.attribute('line-rate').value
146-
assert_equal '0.5', clazz.attribute('branch-rate').value
151+
assert_equal '0.8571', clazz.attribute('line-rate').value
152+
assert_equal '0.4167', clazz.attribute('branch-rate').value
147153
assert_equal '0', clazz.attribute('complexity').value
148154

149155
lines = doc.xpath '/coverage/packages/package/classes/class/lines/line'

0 commit comments

Comments
 (0)