# frozen_string_literal: true require "minitest/autorun" require "tmpdir" require "zip" require "moon_model" module TestData def make_data(path, width: 16, height: 8) elevations = Array.new(width * height) { |i| ((i % width) - width / 2) * 20 } reflectance = Array.new(width * height) { |i| (255.0 * (i % width) / (width - 1)).round } header = { "format_version" => 1, "title" => "test data", "width" => width, "height" => height, "elevation_offset_range_m" => elevations.minmax } encoded = JSON.generate(header) Zlib::GzipWriter.open(path) do |gzip| gzip.write(MoonModel::DataSet::MAGIC) gzip.write([encoded.bytesize].pack("L<")) gzip.write(encoded) gzip.write(elevations.pack("s<*")) gzip.write(reflectance.pack("C*")) end path end end class Minitest::Test include TestData end