follows_reference

typhoon.test.signals. follows_reference ( signal , ref_signal , tol , during = None , strictness = 1 , time_tol = 0 , report_plot = None )

信号が指定された許容範囲内で基準信号に従っているかどうかを確認します。

注記

参照信号は、比較する信号と同じサンプリング レートである必要はありません。これは、pandas interpolate https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.interpolate.html関数を使用して、単一のデータフレームで正規化されるためです。

パラメータ:
  • signal ( pandas.Series ) – テストするシグナル。

  • ref_signal ( pandas.Series ) – テスト対象の信号が従うべき参照信号。

  • 合計 (フロート) – 分析結果が正しいかどうかを判断する際に、基準信号に対して信号がとどまることができる許容範囲 真実 または 間違い.

  • during (タプル) – 分析の対象となる期間(範囲)。

  • 厳密さ( float ) - テストに合格するために定義された範囲内にある必要がある時間信号の割合を決定する 0.0 から 1.0 までの数値。

  • time_tol ( floatまたはtimedelta ) – 時間許容値 - 作成された参照と比較して、信号が指定された時間(秒単位)まで進んでいるか遅れているかを許可する引数。

  • report_plot (辞書) –

    Allureレポートのプロット添付のデフォルトの動作をオーバーライドする辞書。また、コマンドライン引数で指定されたテスト実行全体の動作もオーバーライドします。 --分析プロットタイプ そして --分析プロット失敗時のみ辞書には指定するキーが 2 つあります。

    1. タイプ: 使用するアリュールプロットの種類を指定します。有効な値:

      • 静的 - .png 画像として添付された matplotlib プロットのみが添付されます

      • 相互の作用 - bokehライブラリで作成されたインタラクティブなHTMLプロットのみが添付されています。このプロットの利点は、ズームイン/ズームアウトのオプションがあることです。欠点は、メモリ消費量が大幅に増加することです。

      • なし - 区画は添付されません

      • 全て - すべてのプロットが追加されます。現在サポートされているのはmatplotlib plot(static)とbokeh plot(interactive)です。

    2. いつ: 前のキーで指定されたプロットをレポートに追加するタイミングを指定します。使用可能なオプション:

      • いつも - 常に指定されたプロットを追加します

      • 失敗時 - 参照信号と測定信号の比較が失敗した場合にのみプロットを追加します。これは、Allureプロットのサイズを縮小するのに適した方法です。

    注記

    もし レポートプロット 引数が指定されておらず、コマンドライン引数 --分析プロットタイプ そして 失敗時のみの解析プロット 指定されていない場合、デフォルトの動作は常に静的プロットとしてアタッチされます。コマンドライン引数が指定されている場合は、テスト実行全体にわたる新しいデフォルトの動作が定義されます。

戻り値:

結果– 分析の結果。

戻り値の型:

分析結果

注記

The reference signal needs not to be on the same sampling rate of the signal to be compared, as they will be normalized in a single dataframe using pandas’ interpolate <https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.interpolate.html> function.

考慮する 信号 キャプチャされたデータフレームの一部として

>>> signal =キャプチャ[ "チャネル" ]

実装 台風テストシグナルは一定である 関数は、信号が常に10±0.5付近にあるかどうかを比較する。

>>> import pandas as pd
>>> from typhoon.test.signals import follows_reference
>>>
>>> ref = 10
>>> tol = .5
>>>
>>> ref_signal = pd.Series({
>>>     signal.index[0]: ref,
>>>     signal.index[-1]: ref
>>> })
>>>
>>> result = follows_reference(signal, ref_signal, tol)

実装 台風テスト信号is_ramp 1秒あたり1単位の傾きを持つ関数(傾き= 1)

>>> from typhoon.types.timedelta import Timedelta as td
>>>
>>> dt = signal.index[-1] - signal.index[0]
>>>
>>> initial_value = signal.values[0]
>>> # Equivalent to dt * (slope/dtbase) e.g. slope with 100 units per microsecond y = 10 + (1us * 100/1us) = 110
>>> vf = initial_value + dt/td("1s")*slope
>>>
>>> # Build signal with two points, providing ramp
>>> ref_signal = pd.Series({
>>>     signal.index[0]:initial_value,
>>>     signal.index[-1]:vf
>>> })
>>> result = follows_reference(signal, ref_signal, tol=0.5)