def verify(*tests)
      id = tests.first.is_a?(Symbol) ? tests.shift : @vectors.first

      each_row_with_index.map do |row, i|
        tests.reject { |*_, block| block.call(row) }
             .map { |test| verify_error_message row, test, id, i }
      end.flatten
    end
def verify(*tests)
      id = tests.first.is_a?(Symbol) ? tests.shift : @vectors.first

      each_row_with_index.map do |row, i|
        tests.reject { |*_, block| block.call(row) }
             .map { |test| verify_error_message row, test, id, i }
      end.flatten
    end
Test each row with one or more tests.
 @param tests [Proc]  Each test is a Proc with the form
                      *Proc.new {|row| row[:age] > 0}*
 The function returns an array with all errors.

 FIXME: description here is too sparse. As far as I can get,
 it should tell something about that each test is [descr, fields, block],
 and that first value may be column name to output. - zverok, 2016-05-18