# frozen_string_literal: true require_relative '../test_helper.rb' class UplotPreprocessingTest < Test::Unit::TestCase def setup @m = Uplot::Preprocessing end test :transpose2 do n = nil assert_equal([[1, 2, 3], [4, 5, 6], [7, 8, 9]], @m.transpose2([[1, 4, 7], [2, 5, 8], [3, 6, 9]])) assert_equal([[1, 2, 3], [4, 5, n], [6, n, n]], @m.transpose2([[1, 4, 6], [2, 5], [3]])) assert_equal([[1, 2, 3], [n, 4, 5], [n, n, 6]], @m.transpose2([[1], [2, 4], [3, 5, 6]])) end test :get_headers do assert_equal([1, 4, 7], @m.get_headers([[1, 2, 3], [4, 5, 6], [7, 8, 9]], true, true)) assert_equal([1, 2, 3], @m.get_headers([[1, 4, 6], [2, 5], [3]], true, true)) assert_equal([1, 2, 3], @m.get_headers([[1], [2, 4], [3, 5, 6]], true, true)) assert_equal([1, 2, 3], @m.get_headers([[1, 2, 3], [4, 5, 6], [7, 8, 9]], true, false)) assert_equal([1, 4, 6], @m.get_headers([[1, 4, 6], [2, 5], [3]], true, false)) assert_equal([1], @m.get_headers([[1], [2, 4], [3, 5, 6]], true, false)) assert_equal(nil, @m.get_headers([[1, 2, 3], [4, 5, 6], [7, 8, 9]], false, true)) assert_equal(nil, @m.get_headers([[1, 2, 3], [4, 5, 6], [7, 8, 9]], false, false)) end test :get_series do n = nil assert_equal([[2, 3], [5, 6], [8, 9]], @m.get_series([[1, 2, 3], [4, 5, 6], [7, 8, 9]], true, true)) assert_equal([[4, 6], [5], []], @m.get_series([[1, 4, 6], [2, 5], [3]], true, true)) assert_equal([[], [4], [5, 6]], @m.get_series([[1], [2, 4], [3, 5, 6]], true, true)) assert_equal([[4, 7], [5, 8], [6, 9]], @m.get_series([[1, 2, 3], [4, 5, 6], [7, 8, 9]], true, false)) assert_equal([[2, 3], [5, nil]], @m.get_series([[1, 4, 6], [2, 5], [3]], true, false)) assert_equal([[2, 3], [4, 5], [nil, 6]], @m.get_series([[1], [2, 4], [3, 5, 6]], true, false)) assert_equal([[1, 2, 3], [4, 5, 6], [7, 8, 9]], @m.get_series([[1, 2, 3], [4, 5, 6], [7, 8, 9]], false, true)) assert_equal([[1, 4, 6], [2, 5], [3]], @m.get_series([[1, 4, 6], [2, 5], [3]], false, true)) assert_equal([[1], [2, 4], [3, 5, 6]], @m.get_series([[1], [2, 4], [3, 5, 6]], false, true)) assert_equal([[1, 4, 7], [2, 5, 8], [3, 6, 9]], @m.get_series([[1, 2, 3], [4, 5, 6], [7, 8, 9]], false, false)) assert_equal([[1, 2, 3], [4, 5, n], [6, n, n]], @m.get_series([[1, 4, 6], [2, 5], [3]], false, false)) assert_equal([[1, 2, 3], [n, 4, 5], [n, n, 6]], @m.get_series([[1], [2, 4], [3, 5, 6]], false, false)) end test :count do assert_equal([%i[a b c], [3, 2, 1]], @m.count(%i[a a a b b c])) assert_equal([%i[c b a], [3, 2, 1]], @m.count(%i[a b b c c c])) end end