fitting 2.18.1 → 3.0.1
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 +4 -4
- data/.rubocop.yml +2 -11
- data/CHANGELOG.md +21 -0
- data/README.md +46 -6
- data/fitting.gemspec +3 -1
- data/lib/fitting/configuration.rb +11 -41
- data/lib/fitting/cover/json_schema.rb +4 -2
- data/lib/fitting/cover/json_schema_enum.rb +4 -2
- data/lib/fitting/cover/json_schema_one_of.rb +4 -2
- data/lib/fitting/railtie.rb +1 -0
- data/lib/fitting/records/documented/request.rb +1 -15
- data/lib/fitting/records/spherical/requests.rb +1 -1
- data/lib/fitting/records/tested/request.rb +11 -11
- data/lib/fitting/records/tested/response.rb +4 -4
- data/lib/fitting/report/actions.rb +4 -0
- data/lib/fitting/report/console.rb +32 -12
- data/lib/fitting/report/prefix.rb +20 -41
- data/lib/fitting/report/prefixes.rb +7 -8
- data/lib/fitting/report/response.rb +0 -3
- data/lib/fitting/report/tests.rb +23 -10
- data/lib/fitting/storage/responses.rb +5 -9
- data/lib/fitting/tests.rb +12 -4
- data/lib/fitting/version.rb +1 -1
- data/lib/fitting.rb +38 -43
- data/lib/tasks/fitting.rake +3 -186
- data/lib/tasks/fitting_outgoing.rake +91 -0
- metadata +28 -45
- data/lib/fitting/configuration/legacy.rb +0 -61
- data/lib/fitting/configuration/yaml.rb +0 -89
- data/lib/fitting/cover/response.rb +0 -37
- data/lib/fitting/documentation.rb +0 -56
- data/lib/fitting/matchers/response_matcher.rb +0 -96
- data/lib/fitting/records/realized_unit.rb +0 -52
- data/lib/fitting/records/test_unit/request.rb +0 -98
- data/lib/fitting/records/unit/combination.rb +0 -27
- data/lib/fitting/records/unit/json_schema.rb +0 -111
- data/lib/fitting/records/unit/request.rb +0 -37
- data/lib/fitting/records/unit/response.rb +0 -32
- data/lib/fitting/request.rb +0 -38
- data/lib/fitting/response/fully_validates.rb +0 -34
- data/lib/fitting/response.rb +0 -88
- data/lib/fitting/statistics/analysis.rb +0 -25
- data/lib/fitting/statistics/cover_error.rb +0 -29
- data/lib/fitting/statistics/cover_error_enum.rb +0 -29
- data/lib/fitting/statistics/cover_error_one_of.rb +0 -29
- data/lib/fitting/statistics/great.rb +0 -13
- data/lib/fitting/statistics/list.rb +0 -55
- data/lib/fitting/statistics/lists.rb +0 -53
- data/lib/fitting/statistics/measurement.rb +0 -92
- data/lib/fitting/statistics/measurement_cover.rb +0 -92
- data/lib/fitting/statistics/measurement_cover_enum.rb +0 -92
- data/lib/fitting/statistics/measurement_cover_one_of.rb +0 -92
- data/lib/fitting/statistics/not_covered_responses.rb +0 -13
- data/lib/fitting/statistics/percent.rb +0 -20
- data/lib/fitting/statistics/requests_stats.rb +0 -40
- data/lib/fitting/statistics/responses_stats.rb +0 -32
- data/lib/fitting/statistics/template.rb +0 -117
- data/lib/fitting/statistics/template_cover_error.rb +0 -50
- data/lib/fitting/statistics/template_cover_error_enum.rb +0 -50
- data/lib/fitting/statistics/template_cover_error_one_of.rb +0 -50
- data/lib/fitting/statistics.rb +0 -25
- data/lib/fitting/storage/white_list.rb +0 -158
- data/lib/fitting/templates/realized_template.rb +0 -49
- data/lib/fitting/view/report.html.haml +0 -16
- data/lib/fitting/view/style.css +0 -47
@@ -1,92 +0,0 @@
|
|
1
|
-
module Fitting
|
2
|
-
class Statistics
|
3
|
-
class MeasurementCover
|
4
|
-
attr_reader :requests, :all_responses, :cover_responses, :not_cover_responses, :max_response_path,
|
5
|
-
:coverage_fully, :coverage_non, :coverage_partially, :not_covered_responses
|
6
|
-
|
7
|
-
def initialize(requests)
|
8
|
-
@requests = requests
|
9
|
-
@all_responses = 0
|
10
|
-
@cover_responses = 0
|
11
|
-
@not_cover_responses = 0
|
12
|
-
@max_response_path = 0
|
13
|
-
@coverage_fully = []
|
14
|
-
@coverage_non = []
|
15
|
-
@coverage_partially = []
|
16
|
-
@not_covered_responses = []
|
17
|
-
check_responses
|
18
|
-
end
|
19
|
-
|
20
|
-
def check_responses
|
21
|
-
return if @ready
|
22
|
-
|
23
|
-
@requests.map do |request|
|
24
|
-
chech_request(request)
|
25
|
-
end
|
26
|
-
|
27
|
-
@ready = true
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def chech_request(request)
|
33
|
-
check_cover(request)
|
34
|
-
coverage_push(request)
|
35
|
-
|
36
|
-
@max_response_path = request.path.to_s.size / 8 if request.path.to_s.size / 8 > @max_response_path
|
37
|
-
request.responses.map do |response|
|
38
|
-
check_response(response, request)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def check_response(response, request)
|
43
|
-
json_schema_index = 0
|
44
|
-
response.json_schemas.map do |json_schema|
|
45
|
-
json_schema_index = check_json_schema(json_schema, request, response, json_schema_index)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def check_json_schema(json_schema, request, response, json_schema_index)
|
50
|
-
if json_schema.cover != 100
|
51
|
-
@not_cover_responses += 1
|
52
|
-
@not_covered_responses.push("#{request.method}\t#{request.path} #{response.status} #{json_schema_index}")
|
53
|
-
else
|
54
|
-
@cover_responses += 1
|
55
|
-
end
|
56
|
-
@all_responses += 1
|
57
|
-
json_schema_index + 1
|
58
|
-
end
|
59
|
-
|
60
|
-
def coverage_push(request)
|
61
|
-
if @all == @cover
|
62
|
-
@coverage_fully.push(request)
|
63
|
-
elsif @all == @not_cover
|
64
|
-
@coverage_non.push(request)
|
65
|
-
else
|
66
|
-
@coverage_partially.push(request)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
def check_cover(request)
|
71
|
-
@all = 0
|
72
|
-
@cover = 0
|
73
|
-
@not_cover = 0
|
74
|
-
|
75
|
-
request.responses.map do |response|
|
76
|
-
response.json_schemas.map do |json_schema|
|
77
|
-
count_cover(json_schema)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def count_cover(json_schema)
|
83
|
-
@all += 1
|
84
|
-
if json_schema.cover != 100
|
85
|
-
@not_cover += 1
|
86
|
-
else
|
87
|
-
@cover += 1
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
@@ -1,92 +0,0 @@
|
|
1
|
-
module Fitting
|
2
|
-
class Statistics
|
3
|
-
class MeasurementCoverEnum
|
4
|
-
attr_reader :requests, :all_responses, :cover_responses, :not_cover_responses, :max_response_path,
|
5
|
-
:coverage_fully, :coverage_non, :coverage_partially, :not_covered_responses
|
6
|
-
|
7
|
-
def initialize(requests)
|
8
|
-
@requests = requests
|
9
|
-
@all_responses = 0
|
10
|
-
@cover_responses = 0
|
11
|
-
@not_cover_responses = 0
|
12
|
-
@max_response_path = 0
|
13
|
-
@coverage_fully = []
|
14
|
-
@coverage_non = []
|
15
|
-
@coverage_partially = []
|
16
|
-
@not_covered_responses = []
|
17
|
-
check_responses
|
18
|
-
end
|
19
|
-
|
20
|
-
def check_responses
|
21
|
-
return if @ready
|
22
|
-
|
23
|
-
@requests.map do |request|
|
24
|
-
chech_request(request)
|
25
|
-
end
|
26
|
-
|
27
|
-
@ready = true
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def chech_request(request)
|
33
|
-
check_cover(request)
|
34
|
-
coverage_push(request)
|
35
|
-
|
36
|
-
@max_response_path = request.path.to_s.size / 8 if request.path.to_s.size / 8 > @max_response_path
|
37
|
-
request.responses.map do |response|
|
38
|
-
check_response(response, request)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def check_response(response, request)
|
43
|
-
json_schema_index = 0
|
44
|
-
response.json_schemas.map do |json_schema|
|
45
|
-
json_schema_index = check_json_schema(json_schema, request, response, json_schema_index)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def check_json_schema(json_schema, request, response, json_schema_index)
|
50
|
-
if json_schema.cover_enum != 100
|
51
|
-
@not_cover_responses += 1
|
52
|
-
@not_covered_responses.push("#{request.method}\t#{request.path} #{response.status} #{json_schema_index}")
|
53
|
-
else
|
54
|
-
@cover_responses += 1
|
55
|
-
end
|
56
|
-
@all_responses += 1
|
57
|
-
json_schema_index + 1
|
58
|
-
end
|
59
|
-
|
60
|
-
def coverage_push(request)
|
61
|
-
if @all == @cover
|
62
|
-
@coverage_fully.push(request)
|
63
|
-
elsif @all == @not_cover
|
64
|
-
@coverage_non.push(request)
|
65
|
-
else
|
66
|
-
@coverage_partially.push(request)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
def check_cover(request)
|
71
|
-
@all = 0
|
72
|
-
@cover = 0
|
73
|
-
@not_cover = 0
|
74
|
-
|
75
|
-
request.responses.map do |response|
|
76
|
-
response.json_schemas.map do |json_schema|
|
77
|
-
count_cover(json_schema)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def count_cover(json_schema)
|
83
|
-
@all += 1
|
84
|
-
if json_schema.cover_enum != 100
|
85
|
-
@not_cover += 1
|
86
|
-
else
|
87
|
-
@cover += 1
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
@@ -1,92 +0,0 @@
|
|
1
|
-
module Fitting
|
2
|
-
class Statistics
|
3
|
-
class MeasurementCoverOneOf
|
4
|
-
attr_reader :requests, :all_responses, :cover_responses, :not_cover_responses, :max_response_path,
|
5
|
-
:coverage_fully, :coverage_non, :coverage_partially, :not_covered_responses
|
6
|
-
|
7
|
-
def initialize(requests)
|
8
|
-
@requests = requests
|
9
|
-
@all_responses = 0
|
10
|
-
@cover_responses = 0
|
11
|
-
@not_cover_responses = 0
|
12
|
-
@max_response_path = 0
|
13
|
-
@coverage_fully = []
|
14
|
-
@coverage_non = []
|
15
|
-
@coverage_partially = []
|
16
|
-
@not_covered_responses = []
|
17
|
-
check_responses
|
18
|
-
end
|
19
|
-
|
20
|
-
def check_responses
|
21
|
-
return if @ready
|
22
|
-
|
23
|
-
@requests.map do |request|
|
24
|
-
chech_request(request)
|
25
|
-
end
|
26
|
-
|
27
|
-
@ready = true
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def chech_request(request)
|
33
|
-
check_cover(request)
|
34
|
-
coverage_push(request)
|
35
|
-
|
36
|
-
@max_response_path = request.path.to_s.size / 8 if request.path.to_s.size / 8 > @max_response_path
|
37
|
-
request.responses.map do |response|
|
38
|
-
check_response(response, request)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def check_response(response, request)
|
43
|
-
json_schema_index = 0
|
44
|
-
response.json_schemas.map do |json_schema|
|
45
|
-
json_schema_index = check_json_schema(json_schema, request, response, json_schema_index)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def check_json_schema(json_schema, request, response, json_schema_index)
|
50
|
-
if json_schema.cover_one_of != 100
|
51
|
-
@not_cover_responses += 1
|
52
|
-
@not_covered_responses.push("#{request.method}\t#{request.path} #{response.status} #{json_schema_index}")
|
53
|
-
else
|
54
|
-
@cover_responses += 1
|
55
|
-
end
|
56
|
-
@all_responses += 1
|
57
|
-
json_schema_index + 1
|
58
|
-
end
|
59
|
-
|
60
|
-
def coverage_push(request)
|
61
|
-
if @all == @cover
|
62
|
-
@coverage_fully.push(request)
|
63
|
-
elsif @all == @not_cover
|
64
|
-
@coverage_non.push(request)
|
65
|
-
else
|
66
|
-
@coverage_partially.push(request)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
def check_cover(request)
|
71
|
-
@all = 0
|
72
|
-
@cover = 0
|
73
|
-
@not_cover = 0
|
74
|
-
|
75
|
-
request.responses.map do |response|
|
76
|
-
response.json_schemas.map do |json_schema|
|
77
|
-
count_cover(json_schema)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def count_cover(json_schema)
|
83
|
-
@all += 1
|
84
|
-
if json_schema.cover_one_of != 100
|
85
|
-
@not_cover += 1
|
86
|
-
else
|
87
|
-
@cover += 1
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
module Fitting
|
2
|
-
class Statistics
|
3
|
-
class Percent
|
4
|
-
def initialize(divider, dividend)
|
5
|
-
@divider = divider
|
6
|
-
@dividend = dividend
|
7
|
-
end
|
8
|
-
|
9
|
-
def to_f
|
10
|
-
return 0.to_f if @divider.zero?
|
11
|
-
|
12
|
-
(@dividend.to_f / @divider * 100.0).round(2)
|
13
|
-
end
|
14
|
-
|
15
|
-
def to_s
|
16
|
-
"#{@dividend} (#{to_f}% of #{@divider})"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'fitting/statistics/percent'
|
2
|
-
|
3
|
-
module Fitting
|
4
|
-
class Statistics
|
5
|
-
class RequestsStats
|
6
|
-
def initialize(measurement)
|
7
|
-
@measurement = measurement
|
8
|
-
end
|
9
|
-
|
10
|
-
def to_s
|
11
|
-
@to_s ||= [
|
12
|
-
"API requests with fully implemented responses: #{fully}.",
|
13
|
-
"API requests with partially implemented responses: #{partially}.",
|
14
|
-
"API requests with no implemented responses: #{non}."
|
15
|
-
].join("\n")
|
16
|
-
end
|
17
|
-
|
18
|
-
def fully
|
19
|
-
@fully ||= Fitting::Statistics::Percent.new(
|
20
|
-
@measurement.requests.size,
|
21
|
-
@measurement.coverage_fully.size
|
22
|
-
)
|
23
|
-
end
|
24
|
-
|
25
|
-
def partially
|
26
|
-
@partially ||= Fitting::Statistics::Percent.new(
|
27
|
-
@measurement.requests.size,
|
28
|
-
@measurement.coverage_partially.size
|
29
|
-
)
|
30
|
-
end
|
31
|
-
|
32
|
-
def non
|
33
|
-
@non ||= Fitting::Statistics::Percent.new(
|
34
|
-
@measurement.requests.size,
|
35
|
-
@measurement.coverage_non.size
|
36
|
-
)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'fitting/statistics/percent'
|
2
|
-
|
3
|
-
module Fitting
|
4
|
-
class Statistics
|
5
|
-
class ResponsesStats
|
6
|
-
def initialize(measurement)
|
7
|
-
@measurement = measurement
|
8
|
-
end
|
9
|
-
|
10
|
-
def to_s
|
11
|
-
@to_s ||= [
|
12
|
-
"API responses conforming to the blueprint: #{cover}.",
|
13
|
-
"API responses with validation errors or untested: #{not_cover}."
|
14
|
-
].join("\n")
|
15
|
-
end
|
16
|
-
|
17
|
-
def cover
|
18
|
-
@cover ||= Fitting::Statistics::Percent.new(
|
19
|
-
@measurement.all_responses,
|
20
|
-
@measurement.cover_responses
|
21
|
-
)
|
22
|
-
end
|
23
|
-
|
24
|
-
def not_cover
|
25
|
-
@not_cover ||= Fitting::Statistics::Percent.new(
|
26
|
-
@measurement.all_responses,
|
27
|
-
@measurement.not_cover_responses
|
28
|
-
)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,117 +0,0 @@
|
|
1
|
-
require 'fitting/statistics/not_covered_responses'
|
2
|
-
require 'fitting/statistics/analysis'
|
3
|
-
require 'fitting/statistics/measurement'
|
4
|
-
require 'fitting/statistics/measurement_cover'
|
5
|
-
require 'fitting/statistics/measurement_cover_enum'
|
6
|
-
require 'fitting/statistics/measurement_cover_one_of'
|
7
|
-
require 'fitting/records/unit/request'
|
8
|
-
require 'fitting/storage/white_list'
|
9
|
-
require 'fitting/records/documented/request'
|
10
|
-
|
11
|
-
module Fitting
|
12
|
-
class Statistics
|
13
|
-
class Template
|
14
|
-
def initialize(tested_requests, config, depth = 'valid')
|
15
|
-
@tested_requests = tested_requests
|
16
|
-
@config = config
|
17
|
-
@depth = depth
|
18
|
-
end
|
19
|
-
|
20
|
-
def save
|
21
|
-
File.open(@config.stats_path, 'w') { |file| file.write(stats) }
|
22
|
-
File.open(@config.not_covered_path, 'w') { |file| file.write(not_covered) }
|
23
|
-
end
|
24
|
-
|
25
|
-
def stats
|
26
|
-
if @config.white_list.present? || @config.resource_white_list.present? || @config.include_resources.present?
|
27
|
-
[
|
28
|
-
['[Black list]', black_statistics].join("\n"),
|
29
|
-
['[White list]', white_statistics].join("\n"),
|
30
|
-
''
|
31
|
-
].join("\n\n")
|
32
|
-
else
|
33
|
-
[white_statistics, "\n\n"].join
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def not_covered
|
38
|
-
Fitting::Statistics::NotCoveredResponses.new(white_measurement).to_s
|
39
|
-
end
|
40
|
-
|
41
|
-
def white_statistics
|
42
|
-
@white_statistics ||= Fitting::Statistics::Analysis.new(white_measurement, @depth)
|
43
|
-
end
|
44
|
-
|
45
|
-
def black_statistics
|
46
|
-
@black_statistics ||= Fitting::Statistics::Analysis.new(black_measurement, @depth)
|
47
|
-
end
|
48
|
-
|
49
|
-
def white_measurement
|
50
|
-
@white_measurement ||=
|
51
|
-
case @depth
|
52
|
-
when 'valid'
|
53
|
-
Fitting::Statistics::Measurement.new(white_unit)
|
54
|
-
when 'cover'
|
55
|
-
Fitting::Statistics::MeasurementCover.new(white_unit)
|
56
|
-
when 'cover_enum'
|
57
|
-
Fitting::Statistics::MeasurementCoverEnum.new(white_unit)
|
58
|
-
when 'cover_one_of'
|
59
|
-
Fitting::Statistics::MeasurementCoverOneOf.new(white_unit)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def black_measurement
|
64
|
-
@black_measurement ||=
|
65
|
-
case @depth
|
66
|
-
when 'valid'
|
67
|
-
Fitting::Statistics::Measurement.new(black_unit)
|
68
|
-
when 'cover'
|
69
|
-
Fitting::Statistics::MeasurementCover.new(black_unit)
|
70
|
-
when 'cover_enum'
|
71
|
-
Fitting::Statistics::MeasurementCoverEnum.new(black_unit)
|
72
|
-
when 'cover_one_of'
|
73
|
-
Fitting::Statistics::MeasurementCoverOneOf.new(black_unit)
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
def white_unit
|
78
|
-
@white_unit_requests ||= documented_requests_white.inject([]) do |res, documented_request|
|
79
|
-
res.push(Fitting::Records::Unit::Request.new(documented_request, @tested_requests))
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
def black_unit
|
84
|
-
@black_unit_requests ||= documented_requests_black.inject([]) do |res, documented_request|
|
85
|
-
res.push(Fitting::Records::Unit::Request.new(documented_request, @tested_requests))
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
def documented_requests_white
|
90
|
-
@documented_requests_white ||= documented.find_all(&:white)
|
91
|
-
end
|
92
|
-
|
93
|
-
def documented_requests_black
|
94
|
-
@documented_requests_black ||= documented.find_all do |request|
|
95
|
-
!request.white
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
def documented
|
100
|
-
@documented_requests ||= @config.tomogram.to_a.inject([]) do |res, tomogram_request|
|
101
|
-
res.push(Fitting::Records::Documented::Request.new(tomogram_request, white_list.to_a))
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
def white_list
|
106
|
-
@white_list ||= Fitting::Storage::WhiteList.new(
|
107
|
-
@config.prefix,
|
108
|
-
@config.white_list,
|
109
|
-
@config.resource_white_list,
|
110
|
-
@config.include_resources,
|
111
|
-
@config.include_actions,
|
112
|
-
@config.tomogram.to_resources
|
113
|
-
)
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'fitting/statistics/cover_error'
|
2
|
-
require 'fitting/records/unit/request'
|
3
|
-
require 'fitting/storage/white_list'
|
4
|
-
require 'fitting/records/documented/request'
|
5
|
-
|
6
|
-
module Fitting
|
7
|
-
class Statistics
|
8
|
-
class TemplateCoverError
|
9
|
-
def initialize(tested_requests, config)
|
10
|
-
@tested_requests = tested_requests
|
11
|
-
@config = config
|
12
|
-
end
|
13
|
-
|
14
|
-
def stats
|
15
|
-
"#{white_statistics}\n\n"
|
16
|
-
end
|
17
|
-
|
18
|
-
def white_statistics
|
19
|
-
@white_statistics ||= Fitting::Statistics::CoverError.new(white_unit)
|
20
|
-
end
|
21
|
-
|
22
|
-
def white_unit
|
23
|
-
@white_unit_requests ||= documented_requests_white.inject([]) do |res, documented_request|
|
24
|
-
res.push(Fitting::Records::Unit::Request.new(documented_request, @tested_requests))
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def documented_requests_white
|
29
|
-
@documented_requests_white ||= documented.find_all(&:white)
|
30
|
-
end
|
31
|
-
|
32
|
-
def documented
|
33
|
-
@documented_requests ||= @config.tomogram.to_a.inject([]) do |res, tomogram_request|
|
34
|
-
res.push(Fitting::Records::Documented::Request.new(tomogram_request, white_list.to_a))
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def white_list
|
39
|
-
@white_list ||= Fitting::Storage::WhiteList.new(
|
40
|
-
@config.prefix,
|
41
|
-
@config.white_list,
|
42
|
-
@config.resource_white_list,
|
43
|
-
@config.include_resources,
|
44
|
-
@config.include_actions,
|
45
|
-
@config.tomogram.to_resources
|
46
|
-
)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'fitting/statistics/cover_error_enum'
|
2
|
-
require 'fitting/records/unit/request'
|
3
|
-
require 'fitting/storage/white_list'
|
4
|
-
require 'fitting/records/documented/request'
|
5
|
-
|
6
|
-
module Fitting
|
7
|
-
class Statistics
|
8
|
-
class TemplateCoverErrorEnum
|
9
|
-
def initialize(tested_requests, config)
|
10
|
-
@tested_requests = tested_requests
|
11
|
-
@config = config
|
12
|
-
end
|
13
|
-
|
14
|
-
def stats
|
15
|
-
"#{white_statistics}\n\n"
|
16
|
-
end
|
17
|
-
|
18
|
-
def white_statistics
|
19
|
-
@white_statistics ||= Fitting::Statistics::CoverErrorEnum.new(white_unit)
|
20
|
-
end
|
21
|
-
|
22
|
-
def white_unit
|
23
|
-
@white_unit_requests ||= documented_requests_white.inject([]) do |res, documented_request|
|
24
|
-
res.push(Fitting::Records::Unit::Request.new(documented_request, @tested_requests))
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def documented_requests_white
|
29
|
-
@documented_requests_white ||= documented.find_all(&:white)
|
30
|
-
end
|
31
|
-
|
32
|
-
def documented
|
33
|
-
@documented_requests ||= @config.tomogram.to_a.inject([]) do |res, tomogram_request|
|
34
|
-
res.push(Fitting::Records::Documented::Request.new(tomogram_request, white_list.to_a))
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def white_list
|
39
|
-
@white_list ||= Fitting::Storage::WhiteList.new(
|
40
|
-
@config.prefix,
|
41
|
-
@config.white_list,
|
42
|
-
@config.resource_white_list,
|
43
|
-
@config.include_resources,
|
44
|
-
@config.include_actions,
|
45
|
-
@config.tomogram.to_resources
|
46
|
-
)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'fitting/statistics/cover_error_one_of'
|
2
|
-
require 'fitting/records/unit/request'
|
3
|
-
require 'fitting/storage/white_list'
|
4
|
-
require 'fitting/records/documented/request'
|
5
|
-
|
6
|
-
module Fitting
|
7
|
-
class Statistics
|
8
|
-
class TemplateCoverErrorOneOf
|
9
|
-
def initialize(tested_requests, config)
|
10
|
-
@tested_requests = tested_requests
|
11
|
-
@config = config
|
12
|
-
end
|
13
|
-
|
14
|
-
def stats
|
15
|
-
"#{white_statistics}\n\n"
|
16
|
-
end
|
17
|
-
|
18
|
-
def white_statistics
|
19
|
-
@white_statistics ||= Fitting::Statistics::CoverErrorOneOf.new(white_unit)
|
20
|
-
end
|
21
|
-
|
22
|
-
def white_unit
|
23
|
-
@white_unit_requests ||= documented_requests_white.inject([]) do |res, documented_request|
|
24
|
-
res.push(Fitting::Records::Unit::Request.new(documented_request, @tested_requests))
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def documented_requests_white
|
29
|
-
@documented_requests_white ||= documented.find_all(&:white)
|
30
|
-
end
|
31
|
-
|
32
|
-
def documented
|
33
|
-
@documented_requests ||= @config.tomogram.to_a.inject([]) do |res, tomogram_request|
|
34
|
-
res.push(Fitting::Records::Documented::Request.new(tomogram_request, white_list.to_a))
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def white_list
|
39
|
-
@white_list ||= Fitting::Storage::WhiteList.new(
|
40
|
-
@config.prefix,
|
41
|
-
@config.white_list,
|
42
|
-
@config.resource_white_list,
|
43
|
-
@config.include_resources,
|
44
|
-
@config.include_actions,
|
45
|
-
@config.tomogram.to_resources
|
46
|
-
)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
data/lib/fitting/statistics.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'fitting/statistics/template'
|
2
|
-
|
3
|
-
module Fitting
|
4
|
-
class Statistics
|
5
|
-
def initialize(tested_requests)
|
6
|
-
@tested_requests = tested_requests
|
7
|
-
end
|
8
|
-
|
9
|
-
def save
|
10
|
-
make_dir('fitting')
|
11
|
-
if Fitting.configuration.is_a?(Array)
|
12
|
-
Fitting.configuration.each do |config|
|
13
|
-
make_dir("fitting/#{config.title}")
|
14
|
-
Fitting::Statistics::Template.new(@tested_requests, config).save
|
15
|
-
end
|
16
|
-
else
|
17
|
-
Fitting::Statistics::Template.new(@tested_requests, Fitting.configuration).save
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def make_dir(dir_name)
|
22
|
-
FileUtils.mkdir_p(dir_name)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|