Skip to content

Test Suite

Taiyou edited this page Jan 26, 2026 · 2 revisions

Test Suite — テストスイート

delay-embedding は pytest によるテストスイートで品質を保証しています。

実行方法

PYTHONPATH=src python3 -m pytest tests/ -v

テスト結果

50 passed in 1.22s

50 テストが正常にパスしています。


テスト構成

tests/test_embedding.py — コア機能テスト (43件)

TestDelayEmbeddingInit — コンストラクタ検証 (8件)

テスト 内容
test_default_parameters デフォルト値 (m=2, τ=1) の確認
test_custom_parameters カスタムパラメータの設定
test_invalid_dimension_zero dimension=0 で ValueError
test_invalid_dimension_negative 負の dimension で ValueError
test_invalid_delay_zero delay=0 で ValueError
test_invalid_delay_negative 負の delay で ValueError
test_invalid_dimension_float 浮動小数点 dimension で ValueError
test_repr __repr__ の出力確認

TestTransformUnivariate — 単変量変換テスト (6件)

テスト 内容
test_1d_input 1次元配列の入力処理
test_column_vector_input (T, 1) 形式の入力処理
test_values_dimension2_delay1 m=2, τ=1 の具体的な出力値検証
test_values_dimension3_delay2 m=3, τ=2 の具体的な出力値検証
test_dimension1_is_identity m=1 で恒等変換になることの確認
test_too_short_series 短すぎる時系列で ValueError

TestTransformMultivariate — 多変量変換テスト (5件)

テスト 内容
test_shape_2d 2チャネル入力の出力形状
test_shape_5d 5チャネル入力の出力形状
test_multivariate_values 2次元入力の具体的な出力値検証
test_multivariate_delay2 τ=2 での多変量値検証
test_3d_input_raises 3次元入力で ValueError

TestInverseTransform — 逆変換テスト (3件)

テスト 内容
test_roundtrip_univariate 単変量のラウンドトリップ精度 (atol=1e-12)
test_roundtrip_multivariate 多変量のラウンドトリップ精度 (atol=1e-12)
test_roundtrip_dimension1 m=1 のラウンドトリップ(完全一致)

TestEdgeCases — エッジケース (4件)

テスト 内容
test_list_input Python リスト入力の処理
test_integer_array 整数配列の float キャスト
test_minimum_length_series 最小長の時系列(1行出力)
test_numpy_int_parameters NumPy 整数型パラメータの受け入れ

TestSklearnCompat — scikit-learn 互換テスト (6件)

テスト 内容
test_fit_returns_self fit() が self を返す
test_fit_transform fit_transform と transform の一致
test_get_params get_params() でパラメータ取得
test_set_params set_params() でパラメータ設定
test_clone sklearn.base.clone() による複製
test_pipeline sklearn Pipeline 内での動作

TestAutoOptimization — 自動最適化テスト (11件)

テスト 内容
test_auto_delay delay="auto" での最適遅延推定
test_auto_dimension dimension="auto" での最適次元推定
test_auto_both 両方 "auto" での推定
test_auto_fit_transform fit_transform での自動推定
test_fixed_params_set_fitted_attrs 固定値でも fit 後に fitted 属性が設定される
test_auto_delay_no_fit_raises delay="auto" で fit 前の transform は ValueError
test_auto_dimension_no_fit_raises dimension="auto" で fit 前の transform は ValueError
test_auto_multivariate 多変量入力での自動最適化
test_invalid_auto_string "auto" 以外の文字列で ValueError
test_repr_auto "auto" パラメータの repr 表示
test_repr_mixed 混合パラメータの repr 表示

tests/test_optimal.py — パラメータ推定テスト (7件)

TestOptimalDelay (4件)

テスト 内容
test_returns_positive_integer 正の整数を返すことの確認
test_periodic_signal 周期信号での τ が四分の一周期付近
test_multivariate 多変量入力での動作確認
test_short_series 短い時系列での動作確認

TestOptimalDimension (3件)

テスト 内容
test_returns_positive_integer 正の整数を返すことの確認
test_sine_wave_low_dimension 正弦波で m ≤ 4 と推定
test_multivariate_input 多変量入力での動作確認

テスト設計の方針

  1. 境界値テスト: 最小パラメータ、最小入力長、無効入力
  2. 値の正確性: 小さな例での具体的な出力値の検証
  3. 形状の一貫性: 様々な入力形状での出力形状の確認
  4. ラウンドトリップ: transform → inverse_transform の精度保証
  5. 型の柔軟性: リスト、整数配列、NumPy 整数型など多様な入力型
  6. sklearn 互換性: Pipeline, clone, get/set_params の動作
  7. 自動最適化: "auto" パラメータのフロー(fit 必須、推定値の型・範囲)