You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: test_unicode_normalize.rb
    path of file: ./repos/truffleruby/test/mri/tests
    
    the code of the file until where you have to start completion: # coding: utf-8
# frozen_string_literal: false

# Copyright Ayumu Nojima (野島 歩) and Martin J. Dürst (duerst@it.aoyama.ac.jp)

require 'test/unit'
require 'unicode_normalize/normalize'

class TestUnicodeNormalize < Test::Unit::TestCase

  UNICODE_VERSION = RbConfig::CONFIG['UNICODE_VERSION']
  path = File.expand_path("../enc/unicode/data/#{UNICODE_VERSION}", __dir__)
  UNICODE_DATA_PATH = File.directory?("#{path}/ucd") ? "#{path}/ucd" : path

  def self.expand_filename(basename)
    File.expand_path("#{basename}.txt", UNICODE_DATA_PATH)
  end
end

%w[NormalizationTest].all? {|f|
  File.exist?(TestUnicodeNormalize.expand_filename(f))
} and
class TestUnicodeNormalize
  NormTest = Struct.new :source, :NFC, :NFD, :NFKC, :NFKD, :line

  def self.read_tests
    lines = IO.readlines(expand_filename('NormalizationTest'), encoding: 'utf-8')
    firstline = lines.shift
    define_method "test_0_normalizationtest_firstline" do
      assert_include(firstline, "NormalizationTest-#{UNICODE_VERSION}.txt")
    end
    lines
    .collect.with_index { |linedata, line
    
  def self.generate_test_check_true(source, normalization)
    define_method "test_check_true_#{source}_as_#{normalization}" do
      test = nil
      mesg = proc {"#{to_codepoints(test[source])} should check as #{normalization} but does not on line #{test[:line]}"}
      @@tests.each do |t|
        test = t
        actual = test[source].unicode_normalized?(normalization)
        assert_equal true, actual, mesg
      end
    end
  end

  def self.generate_test_check_false(source, compare, normalization)
    define_method "test_check_false_#{source}_as_#{normalization}" do
      test = nil
      mesg = proc {"#{to_codepoints(test[source])} should not check as #{normalization} but does on line #{test[:line]}"}
      @@tests.each do |t|
        test = t
        if test[source] != test[compare]
          actual = test[source].unicode_normalized?(normalization)
          assert_equal false, actual, mesg
        end
      end
    end
  end

  generate_test_check_true :NFC, :nfc
  generate_test_check_true :NFD, :nfd
  generate_test_check_true :NFKC, :nfc
  generate_test_check_true :NFKC, :nfkc
  generate_test_check_true :NFKD, :nfd
  generate_test_check_true :NFKD, :nfkd

  generate_test_check_false :source, :NFD, :nfd
  generate_test_check_false :NFC, :NFD, :nfd
  generate_test_check_false :NFKC, :NFKD, :nfd
  generate_test_check_false :source, :NFC, :nfc
  generate_test_check_false :NFD, :NFC, :nfc
  generate_test_check_false :NFKD, :NFKC, :nfc
  generate_test_check_false :source, :NFKD, :nfkd
  generate_test_check_false :NFC, :NFKD, :nfkd
  generate_test_check_false :NFD, :NFKD, :nfkd
  generate_test_check_false :NFKC, :NFKD, :nfkd
  generate_test_check_false :source, :NFKC, :nfkc
  generate_test_check_false :NFC, :NFKC, :nfkc
  generate_test_check_false :NFD, :NFKC, :nfkc
  generate_test_check_false :NFKD, :NFKC, :nfkc
end