#include "utiltests.h" #include #include "util.h" using namespace std; UtilTests::UtilTests() { } void UtilTests::IdealCircleApproximation() { vector> points; // create ideal circle points auto center = complex(2.34, 4.12); auto radius = 5.0; static constexpr int numPoints = 10; for(int i=0;i> points; // create ideal circle points auto center = complex(2.34, 4.12); auto radius = 5.0; static constexpr int numPoints = 10; for(int i=0;i> points; // create ideal circle points auto center = complex(2.34, 4.12); auto radius = 5.0; static constexpr int numPoints = 10; for(int i=0;i(50.0); auto S = Util::ImpedanceToSparam(Z); QVERIFY(S == 0.0); QVERIFY(Util::SparamToImpedance(S) == Z); Z = std::complex(0.0); S = Util::ImpedanceToSparam(Z); QVERIFY(S == -1.0); QVERIFY(Util::SparamToImpedance(S) == Z); Z = std::complex(100.0); S = Util::ImpedanceToSparam(Z); QVERIFY(qFuzzyCompare(S.real(), 1.0/3)); QVERIFY(S.imag() == 0.0); QVERIFY(qFuzzyCompare(Util::SparamToImpedance(S).real(), Z.real())); QVERIFY(qFuzzyCompare(Util::SparamToImpedance(S).imag(), Z.imag())); // Edge case: convert S parameter to impedance at 1.0 (which will give a +inf impedance) S = 1.0; Z = Util::SparamToImpedance(S); // convert back, we must land back at 1.0 auto S_from_Z = Util::ImpedanceToSparam(Z); QVERIFY(S_from_Z == S); }