<commit_before># frozen_string_literal: true

require 'test_helper'

module LogArchiver
  class MircToHtmlTest < ActiveSupport::TestCase
    data '太字', [
      "これは \x02太字\x02 です。",
      'これは <span class="mirc-bold">太字</span> です。'
    ]

    data '斜体', [
      "これは \x1D斜体\x1D です。",
      'これは <span class="mirc-italic">斜体</span> です。'
    ]

    data '下線', [
      "以下に\x1F下線が引かれます\x1F。",
      '以下に<span class="mirc-underline">下線が引かれます</span>。'
    ]

    data '打ち消し', [
      "以下は\x1E打ち消されます\x1E。",
      '以下は<span class="mirc-strikethrough">打ち消されます</span>。',
    ]

    data '等幅', [
      "Rubyでは \x11puts()\x11 で文字列を出力できます。",
      'Rubyでは <span class="mirc-monospace">puts()</span> で文字列を出力できます。'
    ]

    data '太字＋斜体＋下線', [
      "重ねて装飾: \x02太字 \x1D斜体 \x1F下線 \x1F下線解除 \x02太字解除 \x1D装飾なし",
      '重ねて装飾: <span class="mirc-bold">太字 </span><span class="mirc-bold mirc-italic">斜体 </span><span class="mirc-bold mirc-italic mirc-underline">下線 </span><span class="mirc-bold mirc-italic">下線解除 </span><span class="mirc-italic">太字解除 </span>装飾なし'
    ]

    data 'リセット', [
      "重ねて装飾: \x02太字 \x1D斜体 \x1F下線 \x0Fまとめてリセット",
      '重ねて装飾: <span class="mirc-bold">太字 </span><span class="mirc-bold mirc-italic">斜体 </span><span class="mirc-bold mirc-italic mirc-underline">下線 </span>まとめてリセット'
    ]

    data '色指定: リセット', [
      "制御文字\x03のみでリセット",
      '制御文字のみでリセット',
    ]

    data '色指定: 文字色1桁', [
      "これは \x030白色\x03 です。",
      'これは <span class="mirc-color00">白色</span> です。'
    ]

    data '色指定: 文字色2桁', [
      "これは \x0301黒色\x03 です。",
      'これは <span class="mirc-color01">黒色</span> です。'
    ]

    data '色指定: 文字色2桁、その後すぐ数字', [
      "これは \x030123黒色\x03 です。",
      'これは <span class="mirc-color01">23黒色</span> です。'
    ]

    data '色指定: カンマのみ', [
      "制御文字後\x03, カンマのみはリセット",
      '制御文字後, カンマのみはリセット'
    ]

    data '色指定: 文字色1桁の後カンマ', [
      "これは\x030,白色\x03です。",
      'これは<span class="mirc-color00">,白色</span>です。'
    ]

    data '色指定: 文字色2桁の後カンマ', [
      "これは\x0301,黒色\x03です。",
      'これは<span class="mirc-color01">,黒色</span>です。'
    ]

    data '色指定: 文字色1桁、背景色1桁', [
      "これは \x030,1文字白色, 背景黒色\x03 です。",
      'これは <span class="mirc-color00 mirc-bg01">文字白色, 背景黒色</span> です。'
    ]

    data '色指定: 文字色1桁、背景色2桁', [
      "これは \x031,00文字黒色, 背景白色\x03 です。",
      'これは <span class="mirc-color01 mirc-bg00">文字黒色, 背景白色</span> です。'
    ]

    data '色指定: 文字色2桁、背景色1桁', [
      "これは \x0300,1文字白色, 背景黒色\x03 です。",
      'これは <span class="mirc-color00 mirc-bg01">文字白色, 背景黒色</span> です。'
    ]

    data '色指定: 文字色2桁、背景色2桁', [
      "これは \x0301,00文字黒色, 背景白色\x03 です。",
      'これは <span class="mirc-color01 mirc-bg00">文字黒色, 背景白色</span> です。'
    ]

    data '制御文字後にカンマ数字はリセット', [
      "背景色が\x0300,01設定されそうで\x03,02されない",
      '背景色が<span class="mirc-color00 mirc-bg01">設定されそうで</span>,02されない'
    ]

    data '色指定: 背景色を維持して文字色のみ変更', [
      "ここから\x0300,01文字白色, 背景黒色\x0315, 文字明るいグレー, 背景黒色",
      'ここから<span class="mirc-color00 mirc-bg01">文字白色, 背景黒色</span><span class="mirc-color15 mirc-bg01">, 文字明るいグレー, 背景黒色</span>'
    ]

    data 'IRC Formatting Example 1', [
      "I love \x033IRC! \x03It is the \x037best protocol ever!",
      'I love <span class="mirc-color03">IRC! </span>It is the <span class="mirc-color07">best protocol ever!</span>'
    ]

    data 'IRC Formatting Example 2', [
      "This is a \x1D\x0313,9cool \x03message",
      'This is a <span class="mirc-italic mirc-color13 mirc-bg09">cool </span><span class="mirc-italic">message</span>'
    ]

    data 'IRC Formatting Example 3', [
      "IRC \x02is \x034,12so \x03great\x0F!",
      'IRC <span class="mirc-bold">is </span><span class="mirc-bold mirc-color04 mirc-bg12">so </span><span class="mirc-bold">great</span>!'
    ]

    data 'IRC Formatting Example 4', [<commit_msg>MircToHtml: テスト: クラスの順番を変更する<commit_after># frozen_string_literal: true

require 'test_helper'

module LogArchiver
  class MircToHtmlTest < ActiveSupport::TestCase
    data '太字', [
      "これは \x02太字\x02 です。",
      'これは <span class="mirc-bold">太字</span> です。'
    ]

    data '斜体', [
      "これは \x1D斜体\x1D です。",
      'これは <span class="mirc-italic">斜体</span> です。'
    ]

    data '下線', [
      "以下に\x1F下線が引かれます\x1F。",
      '以下に<span class="mirc-underline">下線が引かれます</span>。'
    ]

    data '打ち消し', [
      "以下は\x1E打ち消されます\x1E。",
      '以下は<span class="mirc-strikethrough">打ち消されます</span>。',
    ]

    data '等幅', [
      "Rubyでは \x11puts()\x11 で文字列を出力できます。",
      'Rubyでは <span class="mirc-monospace">puts()</span> で文字列を出力できます。'
    ]

    data '太字＋斜体＋下線', [
      "重ねて装飾: \x02太字 \x1D斜体 \x1F下線 \x1F下線解除 \x02太字解除 \x1D装飾なし",
      '重ねて装飾: <span class="mirc-bold">太字 </span><span class="mirc-bold mirc-italic">斜体 </span><span class="mirc-bold mirc-italic mirc-underline">下線 </span><span class="mirc-bold mirc-italic">下線解除 </span><span class="mirc-italic">太字解除 </span>装飾なし'
    ]

    data 'リセット', [
      "重ねて装飾: \x02太字 \x1D斜体 \x1F下線 \x0Fまとめてリセット",
      '重ねて装飾: <span class="mirc-bold">太字 </span><span class="mirc-bold mirc-italic">斜体 </span><span class="mirc-bold mirc-italic mirc-underline">下線 </span>まとめてリセット'
    ]

    data '色指定: リセット', [
      "制御文字\x03のみでリセット",
      '制御文字のみでリセット',
    ]

    data '色指定: 文字色1桁', [
      "これは \x030白色\x03 です。",
      'これは <span class="mirc-color00">白色</span> です。'
    ]

    data '色指定: 文字色2桁', [
      "これは \x0301黒色\x03 です。",
      'これは <span class="mirc-color01">黒色</span> です。'
    ]

    data '色指定: 文字色2桁、その後すぐ数字', [
      "これは \x030123黒色\x03 です。",
      'これは <span class="mirc-color01">23黒色</span> です。'
    ]

    data '色指定: カンマのみ', [
      "制御文字後\x03, カンマのみはリセット",
      '制御文字後, カンマのみはリセット'
    ]

    data '色指定: 文字色1桁の後カンマ', [
      "これは\x030,白色\x03です。",
      'これは<span class="mirc-color00">,白色</span>です。'
    ]

    data '色指定: 文字色2桁の後カンマ', [
      "これは\x0301,黒色\x03です。",
      'これは<span class="mirc-color01">,黒色</span>です。'
    ]

    data '色指定: 文字色1桁、背景色1桁', [
      "これは \x030,1文字白色, 背景黒色\x03 です。",
      'これは <span class="mirc-color00 mirc-bg01">文字白色, 背景黒色</span> です。'
    ]

    data '色指定: 文字色1桁、背景色2桁', [
      "これは \x031,00文字黒色, 背景白色\x03 です。",
      'これは <span class="mirc-color01 mirc-bg00">文字黒色, 背景白色</span> です。'
    ]

    data '色指定: 文字色2桁、背景色1桁', [
      "これは \x0300,1文字白色, 背景黒色\x03 です。",
      'これは <span class="mirc-color00 mirc-bg01">文字白色, 背景黒色</span> です。'
    ]

    data '色指定: 文字色2桁、背景色2桁', [
      "これは \x0301,00文字黒色, 背景白色\x03 です。",
      'これは <span class="mirc-color01 mirc-bg00">文字黒色, 背景白色</span> です。'
    ]

    data '制御文字後にカンマ数字はリセット', [
      "背景色が\x0300,01設定されそうで\x03,02されない",
      '背景色が<span class="mirc-color00 mirc-bg01">設定されそうで</span>,02されない'
    ]

    data '色指定: 背景色を維持して文字色のみ変更', [
      "ここから\x0300,01文字白色, 背景黒色\x0315, 文字明るいグレー, 背景黒色",
      'ここから<span class="mirc-color00 mirc-bg01">文字白色, 背景黒色</span><span class="mirc-bg01 mirc-color15">, 文字明るいグレー, 背景黒色</span>'
    ]

    data 'IRC Formatting Example 1', [
      "I love \x033IRC! \x03It is the \x037best protocol ever!",
      'I love <span class="mirc-color03">IRC! </span>It is the <span class="mirc-color07">best protocol ever!</span>'
    ]

    data 'IRC Formatting Example 2', [
      "This is a \x1D\x0313,9cool \x03message",
      'This is a <span class="mirc-italic mirc-color13 mirc-bg09">cool </span><span class="mirc-italic">message</span>'
    ]

    data 'IRC Formatting Example 3', [
      "IRC \x02is \x034,12so \x03great\x0F!",
      'IRC <span class="mirc-bold">is </span><span class="mirc-bold mirc-color04 mirc-bg12">so </span><span class="mirc-bold">great</span>!'
    ]

    data 'IRC Formatting Example 4', [
{'fraction_non_alphanumeric': 0.18605890976942557, 'fraction_numerical': 0.05491136878581901, 'mean_word_length': 2.9103699843668576, 'pattern_counts': {'":': 0, '<': 133, '<?xml version=': 0, '>': 131, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '966058', 'n_tokens_mistral': 4372, 'n_tokens_neox': 4120, 'n_words': 570}