29 view.
center = wxPoint( 400, 300 );
32 view.
pan = wxRealPoint( 0.0, 0.0 );
35 double tol = 1.0 / view.
radius;
37 for(
double re : { -1.0, -0.5, 0.0, 0.3, 1.0 } )
39 for(
double im : { -1.0, -0.25, 0.0, 0.6, 1.0 } )
43 BOOST_CHECK_SMALL( back.x - re, tol );
44 BOOST_CHECK_SMALL( back.y - im, tol );
55 view.
pan = wxRealPoint( 0.4, -0.2 );
61 BOOST_CHECK_SMALL( back.x - 0.45, tol );
62 BOOST_CHECK_SMALL( back.y - -0.15, tol );
73 double baseRadius = 250.0;
76 wxPoint
center( 400, 300 );
77 wxPoint pos( 520, 180 );
82 view.
radius = baseRadius * oldZoom;
83 view.
pan = wxRealPoint( 0.1, 0.3 );
85 wxRealPoint gamma = view.
ToGamma( pos );
89 zoomed.
zoom = newZoom;
90 zoomed.
radius = baseRadius * newZoom;
93 wxRealPoint after = zoomed.
ToGamma( pos );
95 BOOST_CHECK_CLOSE( after.x, gamma.x, 1e-9 );
96 BOOST_CHECK_CLOSE( after.y, gamma.y, 1e-9 );
101 restored.
zoom = oldZoom;
102 restored.
radius = baseRadius * oldZoom;
105 BOOST_CHECK_CLOSE( restored.
pan.x, view.
pan.x, 1e-9 );
106 BOOST_CHECK_CLOSE( restored.
pan.y, view.
pan.y, 1e-9 );
113 view.
center = wxPoint( 400, 300 );
116 view.
pan = wxRealPoint( 0.0, 0.0 );
119 wxPoint far = view.
ToScreen( 1e12, -1e12 );
121 BOOST_CHECK( far.x > view.
center.x );
122 BOOST_CHECK( far.y > view.
center.y );
125 double nan = std::nan(
"" );
126 double inf = std::numeric_limits<double>::infinity();
145 BOOST_CHECK_CLOSE( r, 50.0, 1e-9 );
146 BOOST_CHECK_SMALL( x, 1e-9 );
150 BOOST_CHECK_CLOSE( r, 100.0, 1e-9 );
151 BOOST_CHECK_SMALL( x, 1e-9 );
155 BOOST_CHECK_CLOSE( r, 25.0, 1e-9 );
159 BOOST_CHECK_CLOSE( r, 30.0, 1e-9 );
160 BOOST_CHECK_CLOSE( x, 40.0, 1e-9 );
163 BOOST_CHECK_CLOSE( x, -40.0, 1e-9 );
167 BOOST_CHECK_CLOSE( r, 150.0, 1e-9 );
195 for(
double gm : { 0.05, 0.2, 0.45, 0.7, 0.95 } )
198 double lin = std::pow( 10.0, rl / 20.0 );
200 BOOST_CHECK_CLOSE(
SMITH_MATH::VSWR( gm ), ( lin + 1.0 ) / ( lin - 1.0 ), 1e-6 );
207 long response, drive;
bool GammaToImpedance(double aRe, double aIm, double aZ0, double &aResistance, double &aReactance)
< Impedance of a reflection coefficient, z = z0 ( 1 + gamma ) / ( 1 - gamma ), false at the gamma = 1...
BOOST_CHECK_EQUAL(result, "25.4")