Sha256: da0d7b91bda5d74f639c50fa36dfa270833a906b99127eb995b052d031997461

Contents?: true

Size: 900 Bytes

Versions: 86

Compression:

Stored size: 900 Bytes

Contents

require "../exercise_generator"
require "../exercise_test_case"

class FlattenArrayGenerator < ExerciseGenerator
  def exercise_name
    "flatten-array"
  end

  def test_cases
    JSON.parse(data)["cases"].map do |test_case|
      FlattenArrayTestCase.new(test_case)
    end
  end
end

class FlattenArrayTestCase < ExerciseTestCase
  private getter description : JSON::Any
  private getter input : JSON::Any
  private getter expected : JSON::Any

  def initialize(test_case)
    @description = test_case["description"]
    @input = test_case["input"]["array"]
    @expected = fix_empty_array(test_case["expected"])
  end

  def workload
    "FlattenArray.flatten(#{input}).should eq(#{expected})"
  end

  def test_name
    description
  end

  def fix_empty_array(input)
    if input.to_s.match(/\[\]/)
      json = "[] of Nil".to_json
      JSON.parse(json)
    else
      input
    end
  end
end

Version data entries

86 entries across 86 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.179 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.178 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.177 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.176 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.175 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.174 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.173 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.172 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.171 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.170 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.169 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.167 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.166 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.165 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.164 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.163 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.162 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.161 tracks/crystal/generator/src/generators/flatten_array.cr
trackler-2.2.1.160 tracks/crystal/generator/src/generators/flatten_array.cr