Sha256: 884898dcad1103fc99910800ceffe7a55e5e740a1af938d752fdb3eff698d348
Contents?: true
Size: 890 Bytes
Versions: 90
Compression:
Stored size: 890 Bytes
Contents
require 'exercise_cases' class TournamentCase < OpenStruct def test_name "test_#{description.tr(' ', '_').tr('()', '')}" end def skipped index.zero? ? '# skip' : 'skip' end def workload 'Tournament.tally(input)' end def expect indented_heredoc(expected, 'TALLY') end def input_text indented_heredoc(input, 'INPUT') end private def indented_heredoc(string, delimiter) [ "<<-#{delimiter}.gsub(/^ */, '')", indent_lines(string), indent_line(delimiter) ].join("\n") end def indent_lines(lines, indent = 3) lines.map { |line| indent_line(line, indent) }.join("\n") end def indent_line(line, indent = 2) ' ' * indent * 2 + line end end TournamentCases = proc do |data| JSON.parse(data)['valid_inputs']['cases'].map.with_index do |row, i| TournamentCase.new(row.merge('index' => i)) end end
Version data entries
90 entries across 90 versions & 1 rubygems