ユニットテストテンプレ - peace098beat/windows_applicaciton GitHub Wiki

ユニットテストのテンプレ

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using FiSig;
using System.Collections.Generic;

namespace TestBackend
{
    [TestClass]
    public class UnitTestBackend
    {

        public string WavFilePath = @"E:\ゴルフ打音解析システム開発スペース\GolfAnalysSystemSolution\wav\golf1_44100_16bit_Mono.wav";
        public Signal signal = null;

        //******************************************************************************//
        [TestInitialize]
        public void TestInitialize()
        {
            // 引数の準備
            signal = new Signal();
            signal.SetWav(WavFilePath);
        }

        [TestCleanup]
        public void TestCelean()
        {
            signal?.Dispose();
        }

        //******************************************************************************//


        [TestMethod]
        public void Backend_正常系()
        {
            int StartSmp = signal.ms2smp(100);
            int nFFT = 256;

            // スライス
            signal.SliceTimeSmp(StartSmp, StartSmp + nFFT - 1);

            // 対象メソッドの実行
            Spectrum spec = signal.FFT(FftWindowType.hamming);

            spec.SliceReset();

            // 結果の検証
            Assert.AreEqual(nFFT, spec.Amplitude.Length);
            Assert.AreEqual(nFFT, spec.Angle.Length);
            Assert.AreEqual(nFFT, spec.LogPower.Length);
            Assert.AreEqual(nFFT, spec.Power.Length);
            Assert.AreEqual(nFFT / 2, spec.HarfFrequency.Length);
            Assert.AreEqual(nFFT, spec.Frequency.Length);

            // 結果の確認
            Dictionary<string, float[]> outdata = new Dictionary<string, float[]>();
            outdata["Freq"] = spec.Frequency;
            outdata["amp"] = spec.Amplitude;
            outdata["Power"] = spec.Power;
            outdata["logpower"] = spec.LogPower;
            outdata["angle"] = spec.Angle;
            FiSig.Helper.WirteCSV("Spectrum_正常_SignalFFTでSpecturmを生成.csv", outdata);
        }
    }
}