Class: Mumukit::Metatest::InteractiveChecker
- Inherits:
-
Checker
- Object
- Checker
- Mumukit::Metatest::InteractiveChecker
show all
- Defined in:
- lib/mumukit/metatest/interactive_checker.rb
Instance Method Summary
collapse
-
#check_last_query_equals(_result, goal) ⇒ Object
-
#check_last_query_fails(result, _goal) ⇒ Object
-
#check_last_query_matches(_result, goal) ⇒ Object
-
#check_last_query_output_includes(result, goal) ⇒ Object
-
#check_last_query_output_like(result, goal) ⇒ Object
-
#check_last_query_outputs(result, goal) ⇒ Object
-
#check_last_query_passes(result, _goal) ⇒ Object
-
#check_queries_equal(result, goal) ⇒ Object
-
#check_queries_match(result, goal) ⇒ Object
-
#check_query_fails(result, goal) ⇒ Object
-
#check_query_outputs(result, goal) ⇒ Object
-
#check_query_passes(result, goal) ⇒ Object
-
#compare_last_query_by(sym, result, goal, &condition) ⇒ Object
-
#fail_t(sym, **kwargs) ⇒ Object
-
#initialize(request, strip_mode: :left_and_right) ⇒ InteractiveChecker
constructor
A new instance of InteractiveChecker.
-
#locale(sym) ⇒ Object
-
#normalize(a_string) ⇒ Object
-
#render_success_output(_value) ⇒ Object
Methods inherited from Checker
#abort, #build_error_output, #build_failed_test_result, #build_passed_test_result, #build_success_output, #check, #check_assertion, #check_assertions, #error, #fail, #postconditions_for, #render_error_output
Constructor Details
#initialize(request, strip_mode: :left_and_right) ⇒ InteractiveChecker
Returns a new instance of InteractiveChecker.
4
5
6
7
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 4
def initialize(request, strip_mode: :left_and_right)
@request = request
@strip_mode = strip_mode
end
|
Instance Method Details
#check_last_query_equals(_result, goal) ⇒ Object
9
10
11
12
13
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 9
def check_last_query_equals(_result, goal)
expected = goal[:value]
actual = query
fail_t :check_last_query_equals, expected: expected, actual: actual unless expected == actual
end
|
#check_last_query_fails(result, _goal) ⇒ Object
21
22
23
24
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 21
def check_last_query_fails(result, _goal)
actual = query
fail_t :check_last_query_fails, actual: actual unless result[:query][:status].failed?
end
|
#check_last_query_matches(_result, goal) ⇒ Object
15
16
17
18
19
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 15
def check_last_query_matches(_result, goal)
regexp = goal[:regexp]
actual = query
fail_t :check_last_query_matches, regexp: regexp.inspect, actual: actual unless query.match?(regexp)
end
|
#check_last_query_output_includes(result, goal) ⇒ Object
42
43
44
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 42
def check_last_query_output_includes(result, goal)
compare_last_query_by(:check_last_query_output_includes, result, goal) { |expected, actual| actual.include? expected }
end
|
#check_last_query_output_like(result, goal) ⇒ Object
46
47
48
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 46
def check_last_query_output_like(result, goal)
compare_last_query_by(:check_last_query_output_like, result, goal) { |expected, actual| normalize(expected) == normalize(actual) }
end
|
#check_last_query_outputs(result, goal) ⇒ Object
38
39
40
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 38
def check_last_query_outputs(result, goal)
compare_last_query_by(:check_last_query_outputs, result, goal) { |expected, actual| expected == actual }
end
|
#check_last_query_passes(result, _goal) ⇒ Object
56
57
58
59
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 56
def check_last_query_passes(result, _goal)
actual = query
fail_t :check_last_query_passes, actual: actual unless result[:query][:status].passed?
end
|
#check_queries_equal(result, goal) ⇒ Object
26
27
28
29
30
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 26
def check_queries_equal(result, goal)
fail_t :check_queries_equal unless goal[:values].all? do |regexp|
queries.any? { |query| query == regexp }
end
end
|
#check_queries_match(result, goal) ⇒ Object
32
33
34
35
36
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 32
def check_queries_match(result, goal)
fail_t :check_queries_match unless goal[:regexps].all? do |regexp|
queries.any? { |query| query.match? regexp }
end
end
|
#check_query_fails(result, goal) ⇒ Object
65
66
67
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 65
def check_query_fails(result, goal)
fail_t :check_query_fails, query: goal[:query] unless result[:status].failed?
end
|
#check_query_outputs(result, goal) ⇒ Object
69
70
71
72
73
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 69
def check_query_outputs(result, goal)
expected = goal[:output]
actual = result[:goal]
fail_t :check_query_outputs, query: goal[:query], expected: expected, actual: actual unless expected == actual
end
|
#check_query_passes(result, goal) ⇒ Object
61
62
63
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 61
def check_query_passes(result, goal)
fail_t :check_query_passes, query: goal[:query] unless result[:status].passed?
end
|
#compare_last_query_by(sym, result, goal, &condition) ⇒ Object
50
51
52
53
54
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 50
def compare_last_query_by(sym, result, goal, &condition)
expected = goal[:output]
actual = result[:query][:result]
fail_t sym, expected: expected, actual: actual unless condition.call expected, actual
end
|
#fail_t(sym, **kwargs) ⇒ Object
79
80
81
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 79
def fail_t(sym, **kwargs)
fail I18n.t(locale(sym), **kwargs)
end
|
#locale(sym) ⇒ Object
83
84
85
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 83
def locale(sym)
'mumukit.interactive.' + sym.to_s
end
|
#normalize(a_string) ⇒ Object
87
88
89
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 87
def normalize(a_string)
a_string.delete(" \t\r\n").downcase
end
|
#render_success_output(_value) ⇒ Object
75
76
77
|
# File 'lib/mumukit/metatest/interactive_checker.rb', line 75
def render_success_output(_value)
I18n.t locale(:goal_passed)
end
|