Component Test Specification / コンポーネント別テスト仕様書¶
This is a review of assertions in the current test suite, not a claim that every listed test passed on every platform. It maps observable contracts to tests and records the conditions under which tests run. No public API or schema change is proposed. これは現行テストの assertion の照合結果です。全環境での成功を意味しません。 観測可能な契約とテストを対応付け、実行条件を示します。公開 API・schema の変更は提案しません。
The generated API reference and Python docstrings define signatures, exceptions, units, and numerical behavior. Also see the compatibility policy, I/O contracts, and Frame extension guide. signature、例外、単位、数値挙動の正本は API reference と Python docstring です。互換性方針、 I/O 契約、Frame 拡張ガイドも参照してください。
Reading the cases / ケースの読み方¶
Each row specifies exactly one observable behavior with an ID, input or condition, expected result, existing test assertion, and coverage. File links lead to the test; the function name identifies the particular assertion to inspect. Confirmed / 確認済み means the named test asserts the stated result for the stated condition. Partial / 一部確認 means the cited assertion covers only part of the condition; the missing assertion follows the table. Unverified / 未確認 means no matching assertion was found in this review. A test file's existence alone is not evidence. 各行は ID と観測可能な振る舞いを一対一で対応させ、入力・条件、期待結果、既存テスト、充足状況を示します。 「確認済み」は記載条件の結果を assertion で確認した状態、「一部確認」は条件の一部のみ、 「未確認」は該当 assertion を見つけられなかった状態です。ファイルの存在だけでは充足としません。
The TensorFlow GPU assertion runs only where a GPU is available; it is skipped in CPU-only environments. TensorFlow GPU の assertion は GPU がある環境でのみ実行され、CPU のみの環境では skip されます。
Core / 基盤 (wandas/core)¶
| ID | Behavior / 振る舞い | Input / 条件 | Expected / 期待結果 | Existing assertion / 既存テスト | Coverage / 充足 |
|---|---|---|---|---|---|
| C-01a | Binary lineage order / 二項 lineage の順序 | Two Frame operands / 2つの Frame | Both parents retain operand order / 両親 node が演算順に並ぶ | test_base_frame_lineage.py test_frame_binary_operation_preserves_operand_order_and_both_parents |
Confirmed / 確認済み |
| C-01b | History projection / 履歴の投影 | Mutate a returned operation_history / 取得した履歴を書き換える |
The next history read is unchanged / 次に取得した履歴は変わらない | test_base_frame_lineage.py test_operation_history_projection_is_defensive |
Confirmed / 確認済み |
| C-01c | Unary lineage node / 単項 lineage node | Apply normalize once / normalize を1回実行 |
One semantic operation node is recorded / 意味的な処理 node を1つ記録 | test_base_frame_lineage.py test_unary_operation_uses_one_semantic_node_for_history_and_recipe |
Confirmed / 確認済み |
| C-01d | Recipe parameter identity / Recipe parameter の同一性 | Extract Recipe after unary operation / 単項処理後に Recipe 抽出 | Recipe uses the lineage operation parameters / Recipe が lineage の処理 parameter を使用 | test_base_frame_lineage.py test_unary_operation_uses_one_semantic_node_for_history_and_recipe |
Confirmed / 確認済み |
| C-01e | Shared-branch history / 共有 branch の履歴 | Merge branches from one processed ancestor / 処理済みの共通祖先から分岐して結合 | Ancestor operation appears once in history / 共通祖先の処理が履歴に一度だけ現れる | test_channel_processing.py test_mix_shared_lineage_history_lists_shared_branch_once |
Confirmed / 確認済み |
| C-01f | Independent-branch history order / 独立 branch の履歴順 | Merge independent branches / 独立 branch を結合 | History preserves branch order / 履歴が branch 順を保持 | test_base_frame_lineage.py test_depth_first_history_keeps_independent_branch_order |
Confirmed / 確認済み |
| C-01g | Frozen history arguments / 履歴引数の固定 | Mutate mapping after rename_channels / 呼出し後に mapping を変更 |
Recorded history stays unchanged / 記録済み履歴は変わらない | test_base_frame_lineage.py test_history_params_are_frozen_at_public_call_entry |
Confirmed / 確認済み |
| C-01h | Frozen Recipe arguments / Recipe 引数の固定 | Mutate mapping after rename_channels / 呼出し後に mapping を変更 |
Extracted Recipe stays unchanged / 抽出 Recipe は変わらない | test_base_frame_lineage.py test_history_params_are_frozen_at_public_call_entry |
Confirmed / 確認済み |
| C-01i | Lazy history read / 履歴参照の遅延性 | Read history of delayed operation / 遅延処理の履歴を参照 | Source samples are not computed / source sample を計算しない | test_base_frame_lineage.py test_public_operation_and_history_access_do_not_compute |
Confirmed / 確認済み |
| C-01j | Lazy Recipe extraction / Recipe 抽出の遅延性 | Extract Recipe from delayed operation / 遅延処理から Recipe 抽出 | Source samples are not computed / source sample を計算しない | test_base_frame_lineage.py test_public_operation_and_history_access_do_not_compute |
Confirmed / 確認済み |
| C-01k | Persisted history continuation / 保存履歴の継続 | Process a Frame with source history prefix / 履歴 prefix 付き Frame を処理 | Display history retains prefix before new operation / 表示履歴は新処理の前に prefix を保持 | test_base_frame_lineage.py test_source_history_prefix_is_copied_and_extended_without_executable_recipe |
Confirmed / 確認済み |
| C-01l | Persisted history Recipe boundary / 保存履歴と Recipe の境界 | Extract Recipe from Frame with history prefix / 履歴 prefix 付き Frame から Recipe 抽出 | Prefix does not become executable node / prefix は実行 node にならない | test_base_frame_lineage.py test_source_history_prefix_is_copied_and_extended_without_executable_recipe |
Confirmed / 確認済み |
| C-05a | Lazy FFT construction / FFT 構築の遅延性 | Build FFT Frame / FFT Frame を構築 | Source samples are not computed / source sample を計算しない | test_xarray_storage_only.py test_transform_methods_remain_lazy |
Confirmed / 確認済み |
| C-05b | Lazy STFT construction / STFT 構築の遅延性 | Build STFT Frame / STFT Frame を構築 | Source samples are not computed / source sample を計算しない | test_xarray_storage_only.py test_transform_methods_remain_lazy |
Confirmed / 確認済み |
| C-02a | Channel metadata alignment / channel metadata の整列 | Reorder selected channels / channel を並べ替える | Metadata follows the selected channels / metadata が選択後の channel に対応する | test_channel_metadata_xarray.py test_channel_selection_reorder_keeps_metadata_aligned_and_filters_extra |
Confirmed / 確認済み |
| C-02b | Metadata input ownership / metadata 入力の所有 | Pass caller-owned extra mapping / 入力辞書を渡す |
Later caller mutation does not change stored metadata / 入力側の変更が保存値へ波及しない | test_metadata.py test_extra_dict_is_copied_from_caller_input |
Confirmed / 確認済み |
| C-03a | Level calculation / レベル計算 | Zero, signed or complex amplitude / 零・負・複素振幅 | Level uses the amplitude magnitude / 振幅の絶対値で計算する | test_level_reference.py test_to_level_handles_scalar_array_zero_signed_and_complex_amplitudes |
Confirmed / 確認済み |
| C-03b | Level reference validation / 基準値検証 | Nonpositive or nonfinite reference / 非正・非有限の基準値 | Construction rejects the reference / 生成時に拒否する | test_level_reference.py test_level_reference_rejects_non_positive_or_non_finite_reference |
Confirmed / 確認済み |
| C-04a | Torch CPU conversion / Torch CPU 変換 | Request CPU tensor / CPU tensor を要求 | Tensor values equal Frame data / tensor 値が Frame data と一致 | test_base_frame_tensor.py test_to_tensor_pytorch_cpu_explicit_correct_values |
Confirmed / 確認済み |
| C-04d | TensorFlow GPU placement / TensorFlow GPU 配置 | GPU available / GPU が使用可能 | Tensor resides on requested GPU / 指定 GPU 上に配置 | test_base_frame_tensor.py test_to_tensor_tensorflow_gpu_skips_if_unavailable |
Confirmed / 確認済み |
Frames / Frame 群 (wandas/frames)¶
| ID | Behavior / 振る舞い | Input / 条件 | Expected / 期待結果 | Existing assertion / 既存テスト | Coverage / 充足 |
|---|---|---|---|---|---|
| F-01a | Annotation result type / 注釈更新後の型 | Update annotations on each Frame family / 各 Frame の注釈を更新 | Result retains its family / 結果の型を保持 | test_frame_immutable_state.py test_annotation_updates_preserve_every_frame_family |
Confirmed / 確認済み |
| F-01e | Annotation data graph / 注釈更新後の data graph | Update annotations / 注釈を更新 | Result shares the original lazy data graph / 結果が元の遅延 data graph を共有 | test_frame_immutable_state.py test_annotation_updates_preserve_every_frame_family |
Confirmed / 確認済み |
| F-01f | Annotation channel IDs / 注釈更新後の channel ID | Update annotations / 注釈を更新 | Stable channel IDs survive / 安定 channel ID を保持 | test_frame_immutable_state.py test_annotation_updates_preserve_every_frame_family |
Confirmed / 確認済み |
| F-01g | Annotation source offset / 注釈更新後の source offset | Update annotations / 注釈を更新 | Source time offset survives / 元時刻 offset を保持 | test_frame_immutable_state.py test_annotation_updates_preserve_every_frame_family |
Confirmed / 確認済み |
| F-01h | Annotation lineage / 注釈更新後の lineage | Update annotations / 注釈を更新 | Lineage identity survives / lineage の同一性を保持 | test_frame_immutable_state.py test_annotation_updates_preserve_every_frame_family |
Confirmed / 確認済み |
| F-01i | Annotation history / 注釈更新後の履歴 | Update annotations / 注釈を更新 | History stays unchanged / 履歴は変わらない | test_frame_immutable_state.py test_annotation_updates_preserve_every_frame_family |
Confirmed / 確認済み |
| F-01j | Annotation analysis state / 注釈更新後の解析状態 | Update a derived Frame's annotations / 派生 Frame の注釈を更新 | Analysis configuration survives / 解析設定を保持 | test_frame_immutable_state.py test_annotation_updates_preserve_every_frame_family |
Confirmed / 確認済み |
| F-01d | Metadata update source immutability / metadata 更新元の不変性 | Call with_metadata / with_metadata を呼ぶ |
Original Frame metadata stays unchanged / 元の Frame metadata は不変 | test_frame_immutable_state.py test_with_metadata_deep_copies_caller_value_once_at_reconstruction_boundary |
Confirmed / 確認済み |
| F-01b | Nested snapshot isolation / 入れ子値の分離 | Mutate a returned metadata snapshot / 取得した metadata を変更 | Stored Frame metadata stays unchanged / 保存値は変わらない | test_frame_immutable_state.py test_public_mutable_paths_are_read_only_and_nested_snapshots_are_detached |
Confirmed / 確認済み |
| F-01c | Sampling-rate immutability / sampling rate の不変性 | Assign sampling rate on a Frame / sampling rate を代入 | Assignment is rejected / 代入を拒否 | test_frame_immutable_state.py test_sampling_rate_assignment_is_read_only_for_every_frame_family |
Confirmed / 確認済み |
| F-02a | Cache reuse / cache 再利用 | Materialize cached Dask Frame repeatedly / cache 後に繰り返し materialize | Source computes once / source の計算は一度 | test_frame_cache.py test_cache_computes_source_once_and_reuses_it_for_materialization_and_operations |
Confirmed / 確認済み |
| F-02b | Lazy operation after cache / cache 後の遅延処理 | Apply an operation to cached Frame / cache 後に処理 | Operation stays lazy / 処理は遅延のまま | test_frame_cache.py test_audio_operation_after_cache_is_lazy_and_does_not_rerun_source |
Confirmed / 確認済み |
| F-02c | Cache calibration / cache の校正 | Cache calibrated raw samples / 校正付き raw data を cache | Calibration is applied exactly once / 校正を一度だけ適用 | test_frame_cache.py test_cache_keeps_raw_samples_so_calibration_is_not_applied_twice |
Confirmed / 確認済み |
| F-02d | Cache lineage identity / cache の lineage 同一性 | Call cache() / cache() を呼ぶ |
Lineage object is retained / lineage object を保持 | test_frame_cache.py test_cache_does_not_add_lineage_history_or_recipe_nodes |
Confirmed / 確認済み |
| F-02e | Cache history / cache の履歴 | Call cache() / cache() を呼ぶ |
History is unchanged / 履歴は変わらない | test_frame_cache.py test_cache_does_not_add_lineage_history_or_recipe_nodes |
Confirmed / 確認済み |
| F-02f | Cache Recipe plan / cache の Recipe plan | Call cache() / cache() を呼ぶ |
Extracted plan is unchanged / 抽出 plan は変わらない | test_frame_cache.py test_cache_does_not_add_lineage_history_or_recipe_nodes |
Confirmed / 確認済み |
| F-02g | Cached sample ownership / cache sample の所有 | Mutate caller array after caching / cache 後に入力配列を変更 | Cached values stay unchanged / cache 値は変わらない | test_frame_cache.py test_cache_owns_samples_and_materializations_cannot_mutate_it |
Confirmed / 確認済み |
| F-02h | Cached materialization isolation / cache materialize の分離 | Mutate returned data / 取得した data を変更 |
Cached values stay unchanged / cache 値は変わらない | test_frame_cache.py test_cache_owns_samples_and_materializations_cannot_mutate_it |
Confirmed / 確認済み |
| F-02i | Cache failure data identity / cache 失敗時の data identity | Source compute raises / source 計算が失敗 | Original _data identity is retained / 元の _data identity を保持 |
test_frame_cache.py test_cache_propagates_compute_failures_without_changing_source |
Confirmed / 確認済み |
| F-02j | Cache failure lineage identity / cache 失敗時の lineage identity | Source compute raises / source 計算が失敗 | Original lineage identity is retained / 元の lineage identity を保持 | test_frame_cache.py test_cache_propagates_compute_failures_without_changing_source |
Confirmed / 確認済み |
| F-02k | Cache failure metadata / cache 失敗時の metadata | Source compute raises / source 計算が失敗 | Original metadata is retained / 元の metadata を保持 | test_frame_cache.py test_cache_propagates_compute_failures_without_changing_source |
Confirmed / 確認済み |
| F-06a | Calibration replacement / 校正値の置換 | Replace channel factor twice / 係数を2回置換 | Factors do not compound / 係数を累積しない | test_channel_calibration.py test_calibration_replacement_never_compounds_and_preserves_frame_state |
Confirmed / 確認済み |
| F-06b | Calibration after reorder / 並べ替え後の校正 | Select channels in new order / channel を並べ替える | Factors follow selected channels / 係数が選択 channel に対応 | test_channel_calibration.py test_selection_and_reordering_keep_calibration_aligned |
Confirmed / 確認済み |
| F-06c | Calibrated RMS / 校正後 RMS | Call RMS on calibrated Frame / 校正後に RMS を計算 | RMS equals equivalent physical signal / 物理量に変換した信号の RMS と一致 | test_channel_calibration.py test_data_rms_fft_stft_and_sound_level_use_calibrated_values |
Confirmed / 確認済み |
| F-06d | Calibrated FFT / 校正後 FFT | Call FFT on calibrated Frame / 校正後に FFT を計算 | Spectrum equals equivalent physical signal / 物理量に変換した信号の spectrum と一致 | test_channel_calibration.py test_data_rms_fft_stft_and_sound_level_use_calibrated_values |
Confirmed / 確認済み |
| F-06e | Calibrated STFT / 校正後 STFT | Call STFT on calibrated Frame / 校正後に STFT を計算 | Spectrogram equals equivalent physical signal / 物理量に変換した信号の spectrogram と一致 | test_channel_calibration.py test_data_rms_fft_stft_and_sound_level_use_calibrated_values |
Confirmed / 確認済み |
| F-06f | Calibrated sound level / 校正後 sound level | Call sound level on calibrated Frame / 校正後に sound level を計算 | Level equals equivalent physical signal / 物理量に変換した信号の level と一致 | test_channel_calibration.py test_data_rms_fft_stft_and_sound_level_use_calibrated_values |
Confirmed / 確認済み |
| F-03a | Spectral property shape / スペクトル値の形状 | One or multiple channels / 1・複数 channel | Public values match the documented rank / 公開値の rank が契約と一致 | test_spectral_property_shapes.py test_manual_spectral_properties_match_public_data_shape_and_values |
Confirmed / 確認済み |
| F-03b | Empty spectral shape / 空 spectrum の形状 | Zero channels / 0 channel | Public values keep the expected empty shape / 公開値は所定の空形状 | test_spectral_property_shapes.py test_zero_channel_spectral_levels_preserve_empty_public_shapes |
Confirmed / 確認済み |
| F-03c | dB reference per channel / channel ごとの dB 基準 | Different channel references / channel ごとに異なる基準 | Each channel uses its own reference / 各 channel の基準を使用 | test_spectral_property_shapes.py test_db_reference_broadcast_is_channel_specific |
Confirmed / 確認済み |
| F-04a | CSD result type / CSD 結果の型 | Public CSD call / CSD を呼ぶ | Result is CrossSpectralFrame / CrossSpectralFrame を返す |
test_pairwise_frames.py test_public_pairwise_operations_return_exact_dedicated_types_and_stay_lazy |
Confirmed / 確認済み |
| F-04d | Transfer result type / transfer 結果の型 | Public transfer call / transfer を呼ぶ | Result is TransferFunctionFrame / TransferFunctionFrame を返す |
test_pairwise_frames.py test_public_pairwise_operations_return_exact_dedicated_types_and_stay_lazy |
Confirmed / 確認済み |
| F-04e | Coherence result type / coherence 結果の型 | Public coherence call / coherence を呼ぶ | Result is CoherenceFrame / CoherenceFrame を返す |
test_pairwise_frames.py test_public_pairwise_operations_return_exact_dedicated_types_and_stay_lazy |
Confirmed / 確認済み |
| F-04b | Pairwise numeric values / channel 間の数値 | Deterministic pairwise signal / 既知の channel 間信号 | Values match independent SciPy oracles / 独立 SciPy 計算と一致 | test_pairwise_frames.py test_public_pairwise_values_match_reused_independent_scipy_oracles |
Confirmed / 確認済み |
| F-04c | Pairwise constructor validation / channel 間 constructor 検証 | Mismatched domain or channel IDs / 不整合な domain・ID | Constructor rejects the state / 生成時に拒否 | test_pairwise_frames.py test_pairwise_constructor_rejects_typed_domain_and_channel_id_mismatches |
Confirmed / 確認済み |
| F-05a | Analysis-state immutability / 解析条件の不変性 | Assign spectrogram analysis parameter / 解析条件へ代入 | Assignment is rejected / 代入を拒否 | test_spectral_analysis_state.py test_analysis_parameters_reject_assignment |
Confirmed / 確認済み |
| F-05b | WDF analysis-state round trip / WDF 解析条件の往復 | Reconstruct via WDF / WDF から再構築 | Analysis parameters survive / 解析条件を保持 | test_spectral_analysis_state.py test_analysis_state_survives_reconstruction_wdf_and_recipe |
Confirmed / 確認済み |
| F-05c | Recipe analysis-state replay / Recipe 解析条件の再実行 | Replay Recipe / Recipe を再実行 | Analysis parameters survive / 解析条件を保持 | test_spectral_analysis_state.py test_analysis_state_survives_reconstruction_wdf_and_recipe |
Confirmed / 確認済み |
Processing / 数値処理 (wandas/processing)¶
| ID | Behavior / 振る舞い | Input / 条件 | Expected / 期待結果 | Existing assertion / 既存テスト | Coverage / 充足 |
|---|---|---|---|---|---|
| P-01a | Low-pass cutoff validation / low-pass cutoff 検証 | Cutoff above Nyquist / Nyquist 超の cutoff | Construction raises an error / 生成時に例外 | test_filter_operations.py test_lowpass_cutoff_above_nyquist_raises_error |
Confirmed / 確認済み |
| P-01b | Low-pass numerical accuracy / low-pass 数値精度 | Known composite signal / 既知の合成信号 | Output matches SciPy sosfiltfilt / SciPy sosfiltfilt と一致 |
test_filter_operations.py test_lowpass_matches_scipy_sosfiltfilt |
Confirmed / 確認済み |
| P-01c | High-pass numerical accuracy / high-pass 数値精度 | Known composite signal / 既知の合成信号 | Output matches SciPy sosfiltfilt / SciPy sosfiltfilt と一致 |
test_filter_operations.py test_highpass_matches_scipy_sosfiltfilt |
Confirmed / 確認済み |
| P-01d | Band-pass numerical accuracy / band-pass 数値精度 | Known composite signal / 既知の合成信号 | Output matches SciPy sosfiltfilt / SciPy sosfiltfilt と一致 |
test_filter_operations.py test_bandpass_matches_scipy_sosfiltfilt |
Confirmed / 確認済み |
| P-02a | Inverse STFT accuracy / 逆 STFT の精度 | Complex spectrum / 複素 spectrum | Reconstructed signal matches independent SciPy oracle / 独立 SciPy 計算と一致 | test_istft_independent_oracle.py test_istft_process_matches_independent_scipy_oracle |
Confirmed / 確認済み |
| P-02b | Inverse STFT length / 逆 STFT の長さ | Reconstruct with length=N / length=N で復元 |
Result equals the first N oracle samples / 結果が oracle の先頭 N sample と一致 | test_istft_independent_oracle.py test_istft_process_trims_only_at_the_operation_boundary |
Confirmed / 確認済み |
| P-03a | Lazy metadata accuracy / 遅延 metadata の精度 | Operation before and after compute / 処理の計算前後 | Declared metadata matches computed result / 宣言値と計算結果が一致 | test_operation_lazy_metadata_contract.py test_operation_lazy_metadata_matches_computed_result |
Confirmed / 確認済み |
| P-03b | Registered-operation coverage / 登録処理の網羅 | Operation registry / 処理 registry | Every registered operation has a metadata case / 全登録処理に metadata ケースがある | test_operation_lazy_metadata_contract.py test_operation_lazy_metadata_contract_covers_every_registered_operation |
Confirmed / 確認済み |
| P-04a | Filter chunk invariance of values / filter 値の chunk 非依存性 | Same signal under single and split chunks / 同一信号を単一・分割 chunk で処理 | Computed values are equivalent / 計算値が一致 | test_filter_operations.py test_lowpass_values_are_independent_of_sample_chunks |
Confirmed / 確認済み |
| P-05a | FFT amplitude oracle / FFT 振幅の oracle | Known cosine with declared FFT window / 既知余弦波と指定窓 | Amplitude matches NumPy rfft reference / NumPy rfft 基準と一致 |
test_spectral_operations.py test_fft_amplitude_matches_numpy_rfft_reference |
Confirmed / 確認済み |
| P-08a | A-weighting response / A-weighting 応答 | Impulse at three frequency probes / 3つの周波数 probe | Response matches expected A curve / A 曲線の期待応答と一致 | test_filter_operations.py test_aweighting_impulse_frequency_response_100hz_1khz_10khz |
Confirmed / 確認済み |
| P-08b | Zwst loudness oracle / Zwst loudness oracle | Deterministic signal / 既知信号 | Zwst loudness matches direct Mosqito result / Zwst loudness が Mosqito 直接計算と一致 | test_psychoacoustic_operations.py TestLoudnessZwst.test_comparison_with_mosqito_direct |
Confirmed / 確認済み |
| P-08c | Dw roughness oracle / Dw roughness oracle | Deterministic signal / 既知信号 | Dw roughness matches direct Mosqito result / Dw roughness が Mosqito 直接計算と一致 | test_psychoacoustic_operations.py TestRoughnessDw.test_comparison_with_mosqito_direct |
Confirmed / 確認済み |
| P-08d | DIN sharpness oracle / DIN sharpness oracle | Deterministic signal / 既知信号 | DIN sharpness matches direct Mosqito result / DIN sharpness が Mosqito 直接計算と一致 | test_psychoacoustic_operations.py TestSharpnessDin.test_comparison_with_mosqito_direct |
Confirmed / 確認済み |
| P-05b | Odd-size FFT final bin / 奇数長 FFT の最終 bin | Odd n_fft / 奇数 n_fft |
Last positive bin has expected amplitude / 最終正周波数 bin の振幅が一致 | test_spectral_operations.py test_fft_odd_size_scales_last_positive_frequency_bin |
Confirmed / 確認済み |
| P-05c | STFT numerical oracle / STFT 数値 oracle | Deterministic signal / 既知信号 | STFT matches SciPy reference / SciPy 基準と一致 | test_spectral_operations.py test_stft_content_matches_scipy_reference |
Confirmed / 確認済み |
| P-05d | STFT inverse round trip / STFT 逆変換往復 | STFT followed by inverse STFT / STFT 後に逆変換 | Reconstructed samples match input / 復元 sample が入力と一致 | test_spectral_operations.py test_stft_istft_roundtrip_reconstruction |
Confirmed / 確認済み |
| P-05e | Welch numerical oracle / Welch 数値 oracle | Deterministic signal / 既知信号 | Spectrum matches SciPy Welch / SciPy Welch と一致 | test_spectral_operations.py test_matches_scipy_welch_reference |
Confirmed / 確認済み |
| P-05f | NOct numerical oracle / NOct 数値 oracle | Mono signal / mono 信号 | Bands match Mosqito reference / 帯域値が Mosqito 基準と一致 | test_spectral_operations.py test_mono_matches_mosqito_noct_spectrum |
Confirmed / 確認済み |
| P-06a | Resampling length / resample 後の長さ | 44.1 kHz to 48 kHz / 44.1 kHz から 48 kHz | Output length matches rate conversion / 出力長が rate 変換と一致 | test_temporal_operations.py test_resampling_standard_44100_to_48000_exact_length |
Confirmed / 確認済み |
| P-06b | Resampling frequency / resample 後の周波数 | Resample known sine / 既知正弦波を resample | Peak frequency is retained / peak 周波数を保持 | test_temporal_operations.py test_resampling_preserves_peak_frequency |
Confirmed / 確認済み |
| P-07a | RMS trend silence floor / 無音 RMS trend floor | Silence with dB output / 無音の dB 出力 | Level equals documented floor / 仕様の floor と一致 | test_temporal_operations.py test_rms_trend_db_silence_uses_documented_floor |
Confirmed / 確認済み |
| P-07b | Sound-level silence floor / 無音 sound level floor | Silence with dB output / 無音の dB 出力 | Level equals documented floor / 仕様の floor と一致 | test_temporal_operations.py test_sound_level_db_silence_uses_documented_floor |
Confirmed / 確認済み |
| P-07c | RMS trend range safety / RMS trend の極値 | Extreme signal or reference magnitude / 極端な信号・基準値 | dB result retains expected finite range / dB 結果が期待範囲に収まる | test_temporal_operations.py test_rms_trend_db_is_range_safe_on_signal_and_reference_sides |
Confirmed / 確認済み |
| P-07d | Sound-level range safety / sound level の極値 | Extreme signal or reference magnitude / 極端な信号・基準値 | dB result retains expected finite range / dB 結果が期待範囲に収まる | test_temporal_operations.py test_sound_level_db_is_range_safe_on_signal_and_reference_sides |
Confirmed / 確認済み |
Pipeline / Recipe (wandas/pipeline)¶
| ID | Behavior / 振る舞い | Input / 条件 | Expected / 期待結果 | Existing assertion / 既存テスト | Coverage / 充足 |
|---|---|---|---|---|---|
| R-01a | Canonical Recipe JSON / 正規 Recipe JSON | Serialize schema 3 plan / schema 3 を serialize | JSON representation is deterministic / JSON が決定的 | test_recipe_serialization.py test_schema_3_serialization_is_deterministic_and_strict_json |
Confirmed / 確認済み |
| R-01b | Unsupported Recipe schema / 未対応 Recipe schema | Missing, old or future version / version 欠損・旧版・将来版 | Loader explicitly rejects the payload / loader が明示的に拒否 | test_recipe_serialization.py test_loader_rejects_unsupported_schema_versions |
Confirmed / 確認済み |
| R-01c | Recipe float encoding / Recipe の小数表現 | Write schema 3, read schema 2 / schema 3 を書き schema 2 を読む | Finite floats are JSON numbers; schema 2 tagged floats load to the same plan / 有限の小数は JSON の数値、schema 2 のタグ付き小数は同じ plan として読める | test_recipe_serialization.py test_schema_3_writes_finite_floats_as_json_numbers_and_reads_schema_2 |
Confirmed / 確認済み |
| R-02a | Typed Recipe replay / 型付き Recipe 再実行 | Extract and replay a Frame transition / Frame 型遷移を抽出・再実行 | Result retains its Frame type / 結果の Frame 型を保持 | test_recipe_execution.py test_typed_frame_transition_replays_lazily |
Confirmed / 確認済み |
| R-02b | External input laziness / 外部入力の遅延性 | Replay with external Dask input / 外部 Dask 入力で再実行 | Input is not computed before user materialization / 明示的な materialize まで計算しない | test_recipe_execution.py test_external_numpy_and_dask_inputs_remain_lazy_until_user_compute |
Confirmed / 確認済み |
| R-02c | Multi-Frame role order / 複数 Frame の役割順 | Replay mix with two Frames / 2 Frame の mix を再実行 |
Operand roles remain ordered / 入力の役割順を保持 | test_recipe_execution.py test_mix_replays_true_multi_frame_operation_in_role_order |
Confirmed / 確認済み |
| R-03a | Recipe extraction error / Recipe 抽出エラー | Extract from a non-Frame input / Frame 以外から抽出 | Raises RecipeExtractionError / RecipeExtractionError を返す |
test_recipe_errors.py test_extraction_error_is_distinct_from_validation_and_execution_errors |
Confirmed / 確認済み |
| R-03b | Recipe execution error / Recipe 実行エラー | Replay operation fails / 再実行時に処理が失敗 | Raises RecipeExecutionError with node_id, operation, and cause / node_id・operation・cause 付きの RecipeExecutionError を返す |
test_recipe_errors.py test_executor_reports_operation_failure_with_node_context |
Confirmed / 確認済み |
| R-03c | Recipe graph validation error / Recipe graph 検証エラー | Load a plan with duplicate graph node / 重複 node 付き plan を load | Raises RecipeSerializationError / RecipeSerializationError を返す |
test_recipe_errors.py test_loader_wraps_graph_validation_as_serialization_error |
Confirmed / 確認済み |
| R-04a | Annotation Recipe node / 注釈の Recipe node | Extract Recipe from annotated Frame / 注釈付き Frame から Recipe 抽出 | Annotation update does not become an operation node / 注釈更新は処理 node にならない | test_frame_state_recipe.py test_annotations_are_not_recipe_intent_and_runtime_annotations_win |
Confirmed / 確認済み |
| R-04b | Runtime label on replay / 再実行時の label | Replay plan with differently labeled input / 異なる label の入力で再実行 | Result uses runtime input label / 結果は実行時入力の label を使う | test_frame_state_recipe.py test_annotations_are_not_recipe_intent_and_runtime_annotations_win |
Confirmed / 確認済み |
| R-04c | Runtime metadata on replay / 再実行時の metadata | Replay plan with different input metadata / 異なる metadata の入力で再実行 | Result uses runtime input metadata / 結果は実行時入力の metadata を使う | test_frame_state_recipe.py test_annotations_are_not_recipe_intent_and_runtime_annotations_win |
Confirmed / 確認済み |
I/O / 入出力 (wandas/io)¶
| ID | Behavior / 振る舞い | Input / 条件 | Expected / 期待結果 | Existing assertion / 既存テスト | Coverage / 充足 |
|---|---|---|---|---|---|
| I-01a | WDF Frame type round trip / WDF の Frame 型往復 | Save and load each built-in Frame / 全 built-in Frame を保存・読込 | Exact Frame type survives / 正確な型を保持 | test_wdf_io.py test_wdf_roundtrips_all_exact_builtin_types |
Confirmed / 確認済み |
| I-01b | WDF calibration round trip / WDF 校正往復 | Calibrated raw data / 校正付き raw data | Calibration is applied once after load / 読込後に校正を一度適用 | test_wdf_io.py test_wdf_preserves_raw_data_and_applies_calibration_once |
Confirmed / 確認済み |
| I-01c | WDF history persistence / WDF 履歴永続化 | Save a Frame with operation history / 履歴付き Frame を保存 | Loaded history equals saved history / 読込後の履歴が保存前と一致 | test_wdf_io.py test_operation_history_remains_display_history_not_recipe_lineage |
Confirmed / 確認済み |
| I-01d | WDF runtime receiver / WDF の実行時 receiver | Load a Frame with operation history / 履歴付き Frame を読込 | previous is None / previous は None |
test_wdf_io.py test_operation_history_remains_display_history_not_recipe_lineage |
Confirmed / 確認済み |
| I-01e | WDF sample values / WDF sample 値 | Save and load each built-in Frame / 全 built-in Frame を保存・読込 | Values match before and after / 読込前後の値が一致 | test_wdf_io.py test_wdf_roundtrips_all_exact_builtin_types |
Confirmed / 確認済み |
| I-01f | WDF sampling rate / WDF sampling rate | Save and load each built-in Frame / 全 built-in Frame を保存・読込 | Sampling rate survives / sampling rate を保持 | test_wdf_io.py test_wdf_roundtrips_all_exact_builtin_types |
Confirmed / 確認済み |
| I-01g | WDF label / WDF label | Save an annotated Frame / 注釈付き Frame を保存 | Frame label survives / Frame label を保持 | test_wdf_io.py test_wdf_roundtrips_immutable_annotations_without_recipe_intent |
Confirmed / 確認済み |
| I-01h | WDF recording metadata / WDF 記録 metadata | Save an annotated Frame / 注釈付き Frame を保存 | Recording metadata survives / 記録 metadata を保持 | test_wdf_io.py test_wdf_roundtrips_immutable_annotations_without_recipe_intent |
Confirmed / 確認済み |
| I-01i | WDF channel extra / WDF channel extra | Save an annotated Frame / 注釈付き Frame を保存 | Channel extra survives / channel extra を保持 | test_wdf_io.py test_wdf_roundtrips_immutable_annotations_without_recipe_intent |
Confirmed / 確認済み |
| I-01j | WDF source offset / WDF source offset | Save an offset Frame / offset 付き Frame を保存 | Source time offset survives / 元時刻 offset を保持 | test_wdf_io.py test_wdf_roundtrips_immutable_annotations_without_recipe_intent |
Confirmed / 確認済み |
| I-02a | WDF schema rejection / WDF schema 拒否 | Missing, old or future version / version 欠損・旧版・将来版 | Reader raises explicit error / reader が明示的に失敗 | test_wdf_io.py test_wdf_rejects_missing_legacy_and_future_versions |
Confirmed / 確認済み |
| I-02b | WDF coordinate validation / WDF 座標検証 | Invalid dimension coordinate / 不正な次元座標 | Reader rejects the file / reader が拒否 | test_wdf_io.py test_wdf_rejects_invalid_dimension_coordinate |
Confirmed / 確認済み |
| I-02c | WDF source compute call / WDF source の compute 呼出し | Save lazy Frame / 遅延 Frame を保存 | Save does not directly call source _data.compute / 保存が source の _data.compute を直接呼ばない |
test_wdf_io.py test_save_does_not_call_frame_data_compute |
Confirmed / 確認済み |
| I-02d | WDF loaded backend lifetime / WDF 読込 backend の寿命 | Compute after loader returns / loader 終了後に計算 | Backend remains computable / 計算可能なまま | test_wdf_io.py test_loaded_backend_remains_computable_after_load_returns |
Confirmed / 確認済み |
| I-03a | WAV PCM normalization / WAV PCM 正規化 | Read int16 PCM / int16 PCM を読込 | Data is full-scale float64 / full-scale float64 になる | test_wav_io.py test_read_wav_int16_pcm_is_full_scale_float64 |
Confirmed / 確認済み |
| I-03b | WAV float amplitude / WAV float 振幅 | Write and read float signal / float 信号を往復 | Amplitudes are not clipped / 振幅を clip しない | test_wav_io.py test_write_wav_preserves_float_amplitudes_without_clipping |
Confirmed / 確認済み |
| I-03c | WAV partial-read shape / WAV 部分読込の形状 | Partial WAV read / WAV を部分読込 | Values remain channel-first / channel-first を維持 | test_wav_smoke.py test_wav_partial_read_preserves_channel_first_shape |
Confirmed / 確認済み |
| I-04a | CSV channel selection / CSV channel 選択 | Select and reorder columns / 列を選択・並べ替え | Values and labels remain aligned / 値と label が対応 | test_csv_selection_and_rates.py test_csv_selection_aligns_values_and_labels |
Confirmed / 確認済み |
| I-04b | CSV partial-read time / CSV 部分読込の時刻 | Fractional rate and partial read / 小数 rate で部分読込 | Source time offset is retained / 元の時刻を保持 | test_csv_selection_and_rates.py test_csv_fractional_rate_partial_read_retains_source_time |
Confirmed / 確認済み |
| I-04c | CSV rate validation / CSV rate 検証 | Invalid sampling rate / 不正な sampling rate | Read fails before indexing / indexing 前に失敗 | test_csv_selection_and_rates.py test_csv_invalid_sampling_rate_fails_before_indexing |
Confirmed / 確認済み |
| I-05a | WAV shape round trip / WAV 形状の往復 | Save and reload ordinary WAV / 通常の WAV を往復 | Shape survives / 形状を保持 | test_wav_io.py test_write_wav_roundtrip_preserves_shape_and_sr |
Confirmed / 確認済み |
| I-05c | WAV sampling-rate round trip / WAV sampling rate の往復 | Save and reload ordinary WAV / 通常の WAV を往復 | Sampling rate survives / sampling rate を保持 | test_wav_io.py test_write_wav_roundtrip_preserves_shape_and_sr |
Confirmed / 確認済み |
| I-05b | WAV recording metadata loss / WAV の記録 metadata 欠落 | Save and reload a Frame with custom recording metadata / 独自 recording metadata 付き Frame を往復 |
Custom recording entry is absent after reload / 独自 recording entry は読込後に存在しない |
test_wav_io.py test_wav_roundtrip_does_not_persist_recording_metadata |
Confirmed / 確認済み |
| I-05d | WAV explicit read labels / WAV 読込時の指定 label | Read WAV with supplied channel labels / label 指定で WAV を読込 | Channels use the supplied labels / 指定 label を channel に設定 | test_wav_io.py test_read_wav_custom_labels_propagated |
Confirmed / 確認済み |
| I-06a | FLAC read values / FLAC 読込値 | Call wd.read on FLAC / FLAC を wd.read |
Values match SoundFile reference / SoundFile 基準値と一致 | test_file_readers.py test_read_supported_audio_format_matches_soundfile_reference (flac case / flac case) |
Confirmed / 確認済み |
| I-06b | OGG read values / OGG 読込値 | Call wd.read on OGG / OGG を wd.read |
Values match SoundFile reference / SoundFile 基準値と一致 | test_file_readers.py test_read_supported_audio_format_matches_soundfile_reference (ogg-vorbis case / ogg-vorbis case) |
Confirmed / 確認済み |
| I-06c | AIFF read values / AIFF 読込値 | Call wd.read on AIFF / AIFF を wd.read |
Values match SoundFile reference / SoundFile 基準値と一致 | test_file_readers.py test_read_supported_audio_format_matches_soundfile_reference (aiff case / aiff case) |
Confirmed / 確認済み |
| I-06d | SND read values / SND 読込値 | Call wd.read on SND / SND を wd.read |
Values match SoundFile reference / SoundFile 基準値と一致 | test_file_readers.py test_read_supported_audio_format_matches_soundfile_reference (snd-au case / snd-au case) |
Confirmed / 確認済み |
| I-06e | AU read values / AU 読込値 | Call wd.read on AU / AU を wd.read |
Values match SoundFile reference / SoundFile 基準値と一致 | test_file_readers.py test_read_supported_audio_format_matches_soundfile_reference (au case / au case) |
Confirmed / 確認済み |
| I-06f | OGA read values / OGA 読込値 | Call wd.read on OGA / OGA を wd.read |
Values match SoundFile reference / SoundFile 基準値と一致 | test_file_readers.py test_read_supported_audio_format_matches_soundfile_reference (oga-vorbis case / oga-vorbis case) |
Confirmed / 確認済み |
| I-06g | Opus read values / Opus 読込値 | Call wd.read on Opus / Opus を wd.read |
Values match SoundFile reference within float32 rounding / SoundFile 基準値と float32 丸め内で一致 | test_file_readers.py test_read_supported_audio_format_matches_soundfile_reference (opus case / opus case) |
Confirmed / 確認済み |
| I-06h | MP3 read values / MP3 読込値 | Call wd.read on MP3 / MP3 を wd.read |
Values match SoundFile reference within float32 rounding / SoundFile 基準値と float32 丸め内で一致 | test_file_readers.py test_read_supported_audio_format_matches_soundfile_reference (mp3 case / mp3 case) |
Confirmed / 確認済み |
| I-06i | CAF read values / CAF 読込値 | Call wd.read on CAF / CAF を wd.read |
Values match SoundFile reference / SoundFile 基準値と一致 | test_file_readers.py test_read_supported_audio_format_matches_soundfile_reference (caf case / caf case) |
Confirmed / 確認済み |
| I-06j | W64 read values / W64 読込値 | Call wd.read on W64 / W64 を wd.read |
Values match SoundFile reference / SoundFile 基準値と一致 | test_file_readers.py test_read_supported_audio_format_matches_soundfile_reference (w64 case / w64 case) |
Confirmed / 確認済み |
| I-06k | RF64 read values / RF64 読込値 | Call wd.read on RF64 / RF64 を wd.read |
Values match SoundFile reference / SoundFile 基準値と一致 | test_file_readers.py test_read_supported_audio_format_matches_soundfile_reference (rf64 case / rf64 case) |
Confirmed / 確認済み |
| I-07a | In-memory default format / memory 入力の既定形式 | Call wd.read with unnamed bytes / 無名 bytes を wd.read |
WAV reader is selected / WAV reader を選択 | test_read.py test_read_defaults_in_memory_source_to_wav |
Confirmed / 確認済み |
| I-07b | Named stream dispatch / 名前付き stream の振分け | Call wd.read with named file-like input / 名前付き file-like を wd.read |
Reader follows stream suffix / stream の拡張子で reader を選択 | test_read.py test_read_infers_named_file_like_type_and_source_name |
Confirmed / 確認済み |
| I-07c | URL WAV provenance / URL WAV の provenance | Read HTTPS WAV via ChannelFrame.from_file / HTTPS WAV を読込 |
Source URL appears in Frame provenance / source URL が Frame provenance に入る | test_wav_io.py test_from_file_url_wav |
Confirmed / 確認済み |
Visualization / 可視化 (wandas/visualization)¶
| ID | Behavior / 振る舞い | Input / 条件 | Expected / 期待結果 | Existing assertion / 既存テスト | Coverage / 充足 |
|---|---|---|---|---|---|
| V-01a | Caller axes use / 指定軸の使用 | Pass an Axes to waveform plot / 波形 plot に Axes を渡す | Artists are drawn on that Axes / 指定 Axes に描く | test_plot_ax_behavior.py test_waveform_plot_draws_into_provided_ax |
Confirmed / 確認済み |
| V-01b | Plot channel labels / plot の channel label | Pass custom labels / 独自 label を渡す | Displayed labels match input / 表示 label が入力と一致 | test_plotting.py test_custom_label_overlay_and_per_channel |
Confirmed / 確認済み |
| V-02a | CSD plotted values / CSD 表示値 | Plot known CSD Frame / 既知 CSD Frame を plot | Plotted numeric values match Frame data / 表示値が Frame data と一致 | test_pairwise_plotting.py test_csd_frequency_views_plot_exact_numeric_values_and_custom_axes |
Confirmed / 確認済み |
| V-02b | Sparse pairwise cells / 疎な pairwise cell | Plot matrix with absent pairs / 欠けた pair を matrix 表示 | Absent cells stay empty / 欠けた cell は空のまま | test_pairwise_plotting.py test_pairwise_matrix_plot_uses_typed_output_input_cells_and_leaves_sparse_cells_empty |
Confirmed / 確認済み |
| V-02c | Unknown pairwise view / 未知の pairwise view | Request unsupported view / 非対応 view を指定 | Plot API rejects it / plot API が拒否 | test_pairwise_plotting.py test_typed_plot_views_reject_unknown_views_and_single_pair_matrix_is_two_dimensional |
Confirmed / 確認済み |
| V-04a | Core-only describe export / core の describe 画像保存 |
Save figure with image_save and no IPython / IPython なしで画像を保存 |
Figure file is written / 図 file を保存 | test_optional_dependencies.py test_describe_image_save_without_ipython_does_not_require_marimo_extra |
Confirmed / 確認済み |
| V-04b | Script display without IPython / IPython なしのスクリプト表示 | Display with describe without IPython / IPython なしで describe 表示 |
Figures shown once with pyplot.show(), then closed / pyplot.show() で一度表示し、その後 close |
test_optional_dependencies.py test_describe_without_ipython_falls_back_to_pyplot_show |
Confirmed / 確認済み |
| V-04c | Playback normalization ownership / 再生用正規化の所有 | Call describe(normalize=True) / describe(normalize=True) を呼ぶ |
Original Frame samples stay unchanged / 元の Frame sample は変わらない | test_describe.py test_describe_playback_normalization_cannot_mutate_frame_samples |
Confirmed / 確認済み |
| V-04d | Script display with IPython installed / IPython ありのスクリプト表示 | Display with describe outside a notebook / ノートブック外で describe 表示 |
Figures shown with pyplot.show(), not IPython display reprs / IPython display の文字列ではなく pyplot.show() で図を表示 |
test_describe.py test_describe_outside_notebook_shows_figures_with_pyplot_even_with_ipython, test_notebook_frontend.py |
Confirmed / 確認済み |
| V-04e | PyScript display / PyScript での表示 | describe and plot with a PyScript output target / PyScript の出力先がある状態で describe と plot |
Figures and audio players go to pyscript.display(); without a target, behaviour is unchanged / 図と音声プレーヤーを pyscript.display() に出し、出力先がなければ従来どおり |
test_pyscript_display.py | Confirmed / 確認済み |
Utils / ユーティリティ (wandas/utils)¶
| ID | Behavior / 振る舞い | Input / 条件 | Expected / 期待結果 | Existing assertion / 既存テスト | Coverage / 充足 |
|---|---|---|---|---|---|
| U-01a | Rate overflow validation / rate overflow 検証 | Finite wide rate normalizes to infinity / 有限だが変換後に無限大 | Validation raises ValueError / ValueError を返す |
test_util.py test_validate_wide_finite_rate_that_normalizes_to_infinity_raises_valueerror |
Confirmed / 確認済み |
| U-01b | RMS formula / RMS の計算式 | Full-period sine / 1周期の正弦波 | RMS matches analytic value / 解析値と一致 | test_util.py test_rms_full_period_sine_matches_analytical |
Confirmed / 確認済み |
| U-01c | Amplitude dB formula / 振幅 dB の計算式 | Half-reference amplitude / 基準の半分の振幅 | Result is approximately −6 dB / 約 −6 dB | test_util.py test_amplitude_to_db_half_returns_minus_6db |
Confirmed / 確認済み |
| U-02a | Dask-backed generator output / 生成結果の Dask 配列 | Default generator call / 既定呼出し | Returned Frame stores a Dask array / 返却 Frame が Dask 配列を保持 | test_generate_sample.py test_defaults_create_one_dask_backed_channel |
Confirmed / 確認済み |
| U-02b | Generated frequency / 生成周波数 | Multiple requested frequencies / 複数の周波数 | Each channel's FFT peak matches request / 各 channel の peak が指定値と一致 | test_generate_sample.py test_multiple_frequencies_each_channel_peak |
Confirmed / 確認済み |
| U-02c | Generated-frequency validation / 生成周波数の検証 | Nonpositive or nonfinite frequency / 非正・非有限の周波数 | Generator gives actionable error / 具体的なエラーを返す | test_generate_sample.py test_non_positive_or_non_finite_frequency_has_actionable_error |
Confirmed / 確認済み |
| U-03a | Dataset lazy loading / dataset の遅延読込 | First item access / 初回 access | Loader runs on access / access 時に読込 | test_frame_dataset.py test_getitem_lazy_triggers_load_and_caches |
Confirmed / 確認済み |
| U-03b | Dataset transform composition / dataset 変換の合成 | Chain two apply calls / apply を連結 |
Both transforms apply in order / 両変換を順に適用 | test_frame_dataset.py test_apply_chaining_composes_transforms |
Confirmed / 確認済み |
| U-03c | Dataset corrupt-file handling / 破損 file の扱い | Load corrupted file / 破損 file を読込 | Failure is logged / 失敗を log に記録 | test_frame_dataset.py test_load_file_corrupted_returns_none_and_logs_error |
Confirmed / 確認済み |
| U-04a | Path metadata discovery / path metadata の発見 | Construct folder dataset with path_metadata=True / folder dataset を構築 |
Partition metadata is inferred / partition metadata を推定 | test_frame_dataset_metadata.py test_path_metadata_infers_plain_and_hive_partitions_without_loading |
Confirmed / 確認済み |
| U-04b | Folder discovery laziness / folder 探索の遅延性 | Construct path-metadata dataset / path metadata 付き dataset を構築 | Waveform reader is not called / 波形 reader を呼ばない | test_frame_dataset_metadata.py test_path_metadata_infers_plain_and_hive_partitions_without_loading |
Confirmed / 確認済み |
| U-04c | Selection laziness / 選択の遅延性 | Select dataset by metadata / metadata で dataset を選択 | Waveform reader is not called / 波形 reader を呼ばない | test_frame_dataset_metadata.py test_select_is_exact_and_lazy_preserves_order_and_metadata |
Confirmed / 確認済み |
| U-04d | Selection target / 選択対象 | Select folder dataset by partition / partition で folder dataset を選択 | Selected paths match filter / 選択 path が条件と一致 | test_frame_dataset_metadata.py test_path_metadata_select_supports_missing_keys_and_processing |
Confirmed / 確認済み |
| U-04e | Processed dataset path metadata / 加工後 dataset の path metadata | Normalize and STFT before selection / normalize・STFT 後に選択 | Selected Frame retains partition metadata / 選択 Frame が partition metadata を保持 | test_frame_dataset_metadata.py test_path_metadata_select_supports_missing_keys_and_processing |
Confirmed / 確認済み |
| U-04f | Unselected-file execution / 未選択 file の実行 | Select then materialize one file / 選択後に1 file を materialize | No unselected waveform is loaded / 未選択波形は読まない | test_frame_dataset_metadata.py test_select_then_process_loads_only_selected_waveform |
Confirmed / 確認済み |
Datasets / 同梱データ (wandas/datasets)¶
| ID | Behavior / 振る舞い | Input / 条件 | Expected / 期待結果 | Existing assertion / 既存テスト | Coverage / 充足 |
|---|---|---|---|---|---|
| D-01a | Sample shape / sample の形状 | Default sample load / 既定読込 | Shape matches the bundled signal contract / 同梱信号の形状と一致 | test_sample_data.py test_load_sample_signal_shape |
Confirmed / 確認済み |
| D-01b | Sample dtype / sample の dtype | Default sample load / 既定読込 | Dtype matches the bundled signal contract / 同梱信号の dtype と一致 | test_sample_data.py test_load_sample_signal_dtype |
Confirmed / 確認済み |
| D-01c | Sample frequency / sample の周波数 | Default sample load / 既定読込 | Measured frequency matches the bundled signal / 同梱信号の周波数と一致 | test_sample_data.py test_load_sample_signal_frequency |
Confirmed / 確認済み |
| D-01d | Sample amplitude / sample の振幅 | Default sample load / 既定読込 | Measured amplitude matches the bundled signal / 同梱信号の振幅と一致 | test_sample_data.py test_load_sample_signal_amplitude |
Confirmed / 確認済み |
Cross-cutting / 横断領域¶
| ID | Behavior / 振る舞い | Input / 条件 | Expected / 期待結果 | Existing assertion / 既存テスト | Coverage / 充足 |
|---|---|---|---|---|---|
| X-01a | Top-level export set / トップレベル公開名 | Inspect wandas.__all__ / wandas.__all__ を確認 |
It contains the curated primary API / 指定された主 API を含む | test_init.py test_top_level_all_is_curated_primary_api |
Confirmed / 確認済み |
| X-01b | Deprecated import warning / 旧 import の警告 | Use from_ndarray / from_ndarray を使用 |
Deprecation warning is emitted / 廃止予定警告を出す | test_init.py test_from_ndarray_remains_deprecated_compatibility_helper |
Confirmed / 確認済み |
| X-01c | Public docstrings / 公開 docstring | Import public exports / 公開名を import | Each has documentation / docstring が存在 | test_public_docstrings.py test_public_exports_are_importable_and_documented |
Confirmed / 確認済み |
| X-02a | Core-only analysis import / analysis 依存なし import | Omit optional analysis and sklearn packages / optional package を除く | wandas imports / wandas を import できる |
test_optional_dependencies.py test_import_wandas_without_optional_analysis_or_sklearn_dependencies |
Confirmed / 確認済み |
| X-02b | Core-only waveform operations / I/O 依存なし波形処理 | Omit I/O packages / I/O package を除く | Basic waveform operation works / 基本波形処理を実行できる | test_optional_dependencies.py test_import_wandas_and_basic_waveform_ops_without_io_dependencies |
Confirmed / 確認済み |
| X-02c | Missing I/O extra hint / I/O extra 案内 | Save or load WDF without h5netcdf or h5py / h5netcdf または h5py なしで WDF 保存・読み込み |
Error names the I/O extra / 例外が I/O extra を案内 | test_optional_dependencies.py test_wdf_missing_io_dependency_has_io_extra_hint |
Confirmed / 確認済み |
| X-02d | Missing effects extra / effects extra 欠損 | Initialize HPSS without librosa / librosa なしで HPSS 初期化 | Error names effects extra / 例外が effects extra を案内 | test_optional_dependencies.py test_hpss_harmonic_missing_librosa_effects_raises_at_init |
Confirmed / 確認済み |
| X-02e | Missing psychoacoustic extra / psychoacoustic extra 欠損 | Request psychoacoustic operation without Mosqito / Mosqito なしで処理を要求 | Error names psychoacoustic extra / 例外が psychoacoustic extra を案内 | test_optional_dependencies.py test_psychoacoustic_missing_mosqito_has_extra_hint |
Confirmed / 確認済み |
| X-02f | Missing ML extra / ML extra 欠損 | Convert to Torch tensor without Torch / Torch なしで変換 | Error names ML extra / 例外が ML extra を案内 | test_base_frame_tensor.py test_to_tensor_pytorch_missing_raises_import_error |
Confirmed / 確認済み |
| X-03a | Documentation navigation / 文書 nav | MkDocs navigation targets / MkDocs nav の参照先 | All targets exist / 参照先が存在 | test_docs_links.py test_mkdocs_nav_targets_exist |
Confirmed / 確認済み |
| X-03b | README examples / README 例 | Execute README Python blocks / README の Python block を実行 | Blocks complete / block が完走 | test_readme_examples.py test_readme_python_code_blocks_execute |
Confirmed / 確認済み |
| X-03c | Learning-path examples / 教材の例 | Run checked-in lessons offline / 教材を offline 実行 | Lessons complete with bundled fixtures / 同梱 fixture で完走 | test_learning_path_executable_contracts.py test_learning_apps_execute_offline_with_checked_in_fixtures |
Confirmed / 確認済み |
| X-04a | Product-path CI routing / product 差分の CI 経路 | Change product or configuration path / product・設定 path を変更 | Required checks are selected / 必要 check を選択 | test_ci_route.py test_product_and_configuration_paths_select_required_checks |
Confirmed / 確認済み |
| X-04b | Unknown-path CI routing / 未知 path の CI 経路 | Empty or unknown changed-path set / 空・未知 path | Full check set is selected / 全 check を選択 | test_ci_route.py test_unknown_or_empty_paths_select_everything |
Confirmed / 確認済み |
| X-04c | Full-lane matrix / full lane の matrix | Full compatibility workflow / full compatibility workflow | Ten environment entries remain / 10環境の matrix を保持 | test_ci_route.py test_full_lane_preserves_the_ten_environment_compatibility_matrix |
Confirmed / 確認済み |
| X-05b | Pyodide collection skip handling / Pyodide 収集 skip | Collection-time skip / 収集時 skip | Lane fails / lane が失敗 | test_pytest_plugin.py test_collection_time_skip_fails_the_pyodide_session |
Confirmed / 確認済み |
Public workflow checkpoints / 公開ワークフローの確認点¶
These cases follow the steps users combine in the README and tutorial. A passing component test does not by itself prove the composed result. README と tutorial の操作連鎖を対象にします。 個別 component の成功だけで連鎖後の結果を確認済みとはしません。
| ID | Behavior / 振る舞い | Input / 条件 | Expected / 期待結果 | Existing assertion / 既存テスト | Coverage / 充足 |
|---|---|---|---|---|---|
| W-01a | Cleanup chain history: DC removal / 加工連鎖履歴の DC 除去 | from_numpy().remove_dc().low_pass_filter() |
History records remove_dc / 履歴に remove_dc を記録 |
test_remove_dc.py test_remove_dc_method_chaining_with_filter |
Confirmed / 確認済み |
| W-01b | Cleanup chain history: low-pass / 加工連鎖履歴の low-pass | from_numpy().remove_dc().low_pass_filter() |
History records wandas.audio.lowpass_filter / 履歴に wandas.audio.lowpass_filter を記録 |
test_remove_dc.py test_remove_dc_method_chaining_with_filter |
Confirmed / 確認済み |
| W-02 | Loaded cleanup spectrum / 読込・加工後の spectrum | read → remove_dc → low_pass_filter → fft on known audio / 既知音声の連鎖 |
FFT peak remains at the known passband frequency / FFT peak が既知の通過帯域周波数にある | test_public_workflows.py test_read_cleanup_fft_retains_known_passband_peak |
Confirmed / 確認済み |
| W-02a | Cleanup removes DC / 加工連鎖で DC を除去 | read → remove_dc → low_pass_filter → fft on audio with DC / DC 付き音声の連鎖 |
DC bin falls below one tenth of its input amplitude / DC bin が入力振幅の1割未満になる | test_public_workflows.py test_read_cleanup_fft_retains_known_passband_peak |
Confirmed / 確認済み |
| W-02b | Cleanup attenuates stopband / 加工連鎖で阻止帯域を減衰 | read → remove_dc → low_pass_filter → fft on audio with 1 kHz component / 1 kHz 成分付き音声の連鎖 |
1 kHz bin falls below one tenth of its input amplitude / 1 kHz bin が入力振幅の1割未満になる | test_public_workflows.py test_read_cleanup_fft_retains_known_passband_peak |
Confirmed / 確認済み |
| W-04 | Comparison labels after concatenation / 結合後の比較 label | Concatenate named recordings, then FFT / 名前付き録音を結合して FFT | Spectrum channel labels identify source recordings / spectrum の channel label が元録音を識別 | test_public_workflows.py test_concatenated_recording_labels_survive_fft |
Confirmed / 確認済み |
For a behavior change, update the matching case and its test together. Run focused pytest, Ruff and ty checks, then the applicable docs, Recipe, I/O, scalability or Pyodide lane. Do not interpret a green docs build as proof of runtime numerical or browser behavior. 振る舞いを変更する際は対応ケースとテストを同時に更新します。focused pytest、Ruff、ty に加え、 該当する文書・Recipe・I/O・scalability・Pyodide 検証を実施してください。