pbt 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.standard.yml +1 -1
- data/CHANGELOG.md +17 -2
- data/README.md +282 -37
- data/lib/pbt/arbitrary/arbitrary.rb +58 -0
- data/lib/pbt/arbitrary/arbitrary_methods.rb +307 -0
- data/lib/pbt/arbitrary/array_arbitrary.rb +55 -0
- data/lib/pbt/arbitrary/choose_arbitrary.rb +25 -0
- data/lib/pbt/arbitrary/constant.rb +37 -0
- data/lib/pbt/arbitrary/constant_arbitrary.rb +23 -0
- data/lib/pbt/arbitrary/filter_arbitrary.rb +36 -0
- data/lib/pbt/arbitrary/fixed_hash_arbitrary.rb +30 -0
- data/lib/pbt/arbitrary/integer_arbitrary.rb +40 -0
- data/lib/pbt/arbitrary/map_arbitrary.rb +31 -0
- data/lib/pbt/arbitrary/one_of_arbitrary.rb +29 -0
- data/lib/pbt/arbitrary/tuple_arbitrary.rb +32 -0
- data/lib/pbt/check/case.rb +8 -0
- data/lib/pbt/check/configuration.rb +58 -0
- data/lib/pbt/check/property.rb +50 -0
- data/lib/pbt/check/runner_iterator.rb +59 -0
- data/lib/pbt/check/runner_methods.rb +177 -0
- data/lib/pbt/check/tosser.rb +32 -0
- data/lib/pbt/reporter/run_details.rb +21 -0
- data/lib/pbt/reporter/run_details_reporter.rb +39 -0
- data/lib/pbt/reporter/run_execution.rb +81 -0
- data/lib/pbt/version.rb +1 -1
- data/lib/pbt.rb +65 -5
- metadata +23 -4
- data/lib/pbt/generator.rb +0 -15
- data/lib/pbt/runner.rb +0 -41
data/lib/pbt/runner.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Pbt
|
4
|
-
class Runner
|
5
|
-
CASE_COUNT = 100
|
6
|
-
Case = Struct.new(:val, :ractor, :exception)
|
7
|
-
private_constant :CASE_COUNT, :Case
|
8
|
-
|
9
|
-
def initialize(generator, &block)
|
10
|
-
@generator = generator
|
11
|
-
@block = block
|
12
|
-
end
|
13
|
-
|
14
|
-
def run
|
15
|
-
cases = []
|
16
|
-
CASE_COUNT.times do
|
17
|
-
val = @generator.call
|
18
|
-
ractor = Ractor.new(val, &@block)
|
19
|
-
cases << Case.new(val:, ractor:, exception: nil)
|
20
|
-
end
|
21
|
-
|
22
|
-
failures = []
|
23
|
-
cases.each do |c|
|
24
|
-
c.ractor.take
|
25
|
-
rescue => e
|
26
|
-
failures << c.with(exception: e.cause)
|
27
|
-
end
|
28
|
-
|
29
|
-
message = []
|
30
|
-
failures.group_by { _1.exception.class }.each do |exception_class, failures|
|
31
|
-
message << <<~EOS
|
32
|
-
#{exception_class}:
|
33
|
-
Failed on:
|
34
|
-
#{failures.map(&:val).join("\n ")}
|
35
|
-
EOS
|
36
|
-
end
|
37
|
-
|
38
|
-
raise CaseFailure, message.join("\n") if failures.size > 0
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|