benchcc 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3c673143469f98b1845d9a8a111a6b79f14fecac
4
- data.tar.gz: 74b93f199b1cee683440636ecfddd6ea7187af37
3
+ metadata.gz: 07b5d40f9fee0b3fb681ad158ad178b59f7c3836
4
+ data.tar.gz: 5031ce36ea4b4019f516a1cc70f1a57a5f50585e
5
5
  SHA512:
6
- metadata.gz: cf7747c85a08682f207cb6bb4b5280a83e0279cee52335a8da235c52c8a8964c610211498f14aaae0bbd567bf1858799be5ad175388589f3246a07679a6071b9
7
- data.tar.gz: 349a117bf0a730fefc5377079ec50e350b420175b9c4628604e7faca1103ffe2ce1c910d5aba1e85465d88701cc5d5416f195a4c34b940581d99d5814a31ec9a
6
+ metadata.gz: 4598c095d3c2be82c288c45be30f8358bbf128e4d0ca21ec31cbbb4475ab8e58d30a1be3a04c6fe6c68c2631641eef26c88aa43abdd680db6fa9cee26a70bd27
7
+ data.tar.gz: 0b4ba5c9acf0cecf64e09d48a5b32efbe14aa54315ba223e08c23fdbe9c2729ff11e244ba3ee276b0ba9273455473fae511cecad204a122dcc9b646d12413cbc
@@ -28,7 +28,7 @@ module Benchcc
28
28
  break if consecutive_errors >= 2
29
29
  code = Renderer.new(relative_to).render(file, **env)
30
30
  begin
31
- Timeout::timeout(timeout) { data << env.merge(block.call(code)) }
31
+ Timeout::timeout(timeout) { data << env.merge(block.call(code).to_h) }
32
32
  consecutive_errors = 0
33
33
  rescue CompilationError, Timeout::Error => e
34
34
  $stderr << e
@@ -42,9 +42,9 @@ module Benchcc
42
42
  end
43
43
  module_function :benchmark
44
44
 
45
- def benchmark_to_csv(file, envs, out, timeout: 10, relative_to: File.dirname(file), &block)
45
+ def benchmark_to_csv(file, envs, timeout: 10, relative_to: File.dirname(file), &block)
46
46
  data = benchmark(file, envs, timeout: timeout, relative_to: relative_to, &block)
47
- CSV.open(out, 'wb') do |csv|
47
+ return CSV.generate(headers: :first_row) do |csv|
48
48
  csv << data.first.keys unless data.empty?
49
49
  data.each { |line| csv << line.values }
50
50
  end
@@ -1,3 +1,3 @@
1
1
  module Benchcc
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -6,7 +6,7 @@ require 'timeout'
6
6
 
7
7
 
8
8
  describe Benchcc.method(:benchmark) do
9
- it('time outs are ignored') {
9
+ it('should ignore timeouts') {
10
10
  timeout = 0.3
11
11
  envs = [{time: timeout + 0.1}, {time: timeout - 0.1},
12
12
  {time: timeout + 0.2}, {time: timeout - 0.2}]
@@ -20,4 +20,31 @@ describe Benchcc.method(:benchmark) do
20
20
  expect(data).to eq(envs.select { |env| env[:time] < timeout })
21
21
  end
22
22
  }
23
+
24
+ it('should accumulate whatever is returned from the block') {
25
+ envs = [{x: 0}, {x: 1}, {x: 2}, {x: 3}]
26
+ Tempfile.create('') do |file|
27
+ file.write('<%= x %>')
28
+ file.flush
29
+ data = Benchcc.benchmark(file.path, envs) do |x|
30
+ {x: x.to_i}
31
+ end
32
+ expect(data).to eq(envs)
33
+ end
34
+ }
35
+ end
36
+
37
+ describe Benchcc.method(:benchmark_to_csv) do
38
+ it('should output to csv correctly') {
39
+ envs = [{x: 1, y:-1}, {x: 2, y:-2}, {x: 3, y:-3}]
40
+ Tempfile.create('') do |file|
41
+ file.write('<%= x %> <%= y %>')
42
+ file.flush
43
+ csv = Benchcc.benchmark_to_csv(file.path, envs) do |str|
44
+ x, y = str.split(' ')
45
+ {x: x.to_i, y: y.to_i}
46
+ end
47
+ expect(csv).to eq("x,y\n1,-1\n2,-2\n3,-3\n")
48
+ end
49
+ }
23
50
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: benchcc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Louis Dionne