ctkLinearValueProxyTest.cpp 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510
  1. /*=========================================================================
  2. Library: CTK
  3. Copyright (c) Kitware Inc.
  4. Licensed under the Apache License, Version 2.0 (the "License");
  5. you may not use this file except in compliance with the License.
  6. You may obtain a copy of the License at
  7. http://www.apache.org/licenses/LICENSE-2.0.txt
  8. Unless required by applicable law or agreed to in writing, software
  9. distributed under the License is distributed on an "AS IS" BASIS,
  10. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  11. See the License for the specific language governing permissions and
  12. limitations under the License.
  13. =========================================================================*/
  14. // QT includes
  15. #include <QSignalSpy>
  16. // CTK includes
  17. #include "ctkLinearValueProxy.h"
  18. #include "ctkTest.h"
  19. // ----------------------------------------------------------------------------
  20. class ctkLinearValueProxyTester: public QObject
  21. {
  22. Q_OBJECT
  23. private Q_SLOTS:
  24. void testSimpleSetValue();
  25. void testSimpleSetValue_data();
  26. void testCoefficient();
  27. void testCoefficient_data();
  28. void testOffset();
  29. void testOffset_data();
  30. void testSetValue();
  31. void testSetValue_data();
  32. void testSetValueNullCoeff();
  33. void testSetValueNullCoeff_data();
  34. void testSetProxyValue();
  35. void testSetProxyValue_data();
  36. void testSetProxyValueNullCoeff();
  37. void testSetProxyValueNullCoeff_data();
  38. void testProxyModified();
  39. void testProxyModified_data();
  40. };
  41. // ----------------------------------------------------------------------------
  42. void ctkLinearValueProxyTester::testSimpleSetValue()
  43. {
  44. ctkLinearValueProxy proxy;
  45. proxy.setValue(28.1358);
  46. QSignalSpy valueSpy(&proxy, SIGNAL(valueChanged(double)));
  47. QSignalSpy proxyValueSpy(&proxy, SIGNAL(proxyValueChanged(double)));
  48. QFETCH(double, value);
  49. proxy.setValue(value);
  50. ctkTest::COMPARE(proxy.value(), value);
  51. ctkTest::COMPARE(proxy.proxyValue(), value);
  52. ctkTest::COMPARE(valueSpy.count(), 1);
  53. double valueFromSpy = valueSpy.takeFirst().at(0).toDouble();
  54. ctkTest::COMPARE(valueFromSpy, value);
  55. ctkTest::COMPARE(proxyValueSpy.count(), 1);
  56. double proxyValueFromSpy = proxyValueSpy.takeFirst().at(0).toDouble();
  57. ctkTest::COMPARE(proxyValueFromSpy, value);
  58. }
  59. // ----------------------------------------------------------------------------
  60. void ctkLinearValueProxyTester::testSimpleSetValue_data()
  61. {
  62. QTest::addColumn<double>("value");
  63. QTest::newRow("Null value") << 0.0;
  64. QTest::newRow("Very very small value") << 1e-26;
  65. QTest::newRow("Not so small value") << 1e-6;
  66. QTest::newRow("Max value") <<std::numeric_limits<double>::max();
  67. QTest::newRow("Min value") <<std::numeric_limits<double>::min();
  68. QTest::newRow("Infinity") <<std::numeric_limits<double>::infinity();
  69. QTest::newRow(" - Infinity") << - std::numeric_limits<double>::infinity();
  70. QTest::newRow("Nan") << - std::numeric_limits<double>::quiet_NaN();
  71. }
  72. // ----------------------------------------------------------------------------
  73. void ctkLinearValueProxyTester::testCoefficient()
  74. {
  75. ctkLinearValueProxy proxy;
  76. proxy.setValue(13.2);
  77. QSignalSpy valueSpy(&proxy, SIGNAL(valueChanged(double)));
  78. QSignalSpy proxyValueSpy(&proxy, SIGNAL(proxyValueChanged(double)));
  79. QFETCH(double, coefficient);
  80. proxy.setCoefficient(coefficient);
  81. QFETCH(double, expectedProxyValue);
  82. ctkTest::COMPARE(proxy.proxyValue(), expectedProxyValue);
  83. ctkTest::COMPARE(proxy.value(), 13.2);
  84. ctkTest::COMPARE(valueSpy.count(), 0);
  85. ctkTest::COMPARE(proxyValueSpy.count(), proxy.proxyValue() != 13.2 ? 1 : 0);
  86. if (proxyValueSpy.count())
  87. {
  88. double proxyValueFromSpy = proxyValueSpy.takeFirst().at(0).toDouble();
  89. ctkTest::COMPARE(proxyValueFromSpy, expectedProxyValue);
  90. }
  91. }
  92. // ----------------------------------------------------------------------------
  93. void ctkLinearValueProxyTester::testCoefficient_data()
  94. {
  95. QTest::addColumn<double>("coefficient");
  96. QTest::addColumn<double>("expectedProxyValue");
  97. QTest::newRow("Null coeff") << 0.0 << 0.0;
  98. QTest::newRow("Very very small coeff") << 1e-26 << 1.32e-25;
  99. QTest::newRow("Not so small coeff") << 1e-6 << 1.32e-5;
  100. QTest::newRow("Normal coeff") << 2.0 << 26.4;
  101. QTest::newRow("Negative coeff") << -2.0 << -26.4;
  102. QTest::newRow("Large coeff") << 123456.0 << 1629619.2;
  103. QTest::newRow("Very very large coeff") << 1e26 << 13.2 * 1e26;
  104. QTest::newRow("unit coeff") << 1.0 << 13.2;
  105. QTest::newRow("same coeff") << 1.0 << 13.2;
  106. QTest::newRow("Max coeff") << std::numeric_limits<double>::max()
  107. << std::numeric_limits<double>::infinity();
  108. QTest::newRow("Min coeff") << - std::numeric_limits<double>::max()
  109. << - std::numeric_limits<double>::infinity();
  110. QTest::newRow("Infinity coeff") << std::numeric_limits<double>::infinity()
  111. << std::numeric_limits<double>::infinity();
  112. QTest::newRow(" - Infinity coeff")
  113. << - std::numeric_limits<double>::infinity()
  114. << - std::numeric_limits<double>::infinity();
  115. QTest::newRow("Nan coeff") << std::numeric_limits<double>::quiet_NaN()
  116. << std::numeric_limits<double>::quiet_NaN();
  117. }
  118. // ----------------------------------------------------------------------------
  119. void ctkLinearValueProxyTester::testOffset()
  120. {
  121. ctkLinearValueProxy proxy;
  122. proxy.setValue(13.2);
  123. QSignalSpy valueSpy(&proxy, SIGNAL(valueChanged(double)));
  124. QSignalSpy proxyValueSpy(&proxy, SIGNAL(proxyValueChanged(double)));
  125. QFETCH(double, offset);
  126. proxy.setOffset(offset);
  127. QFETCH(double, expectedProxyValue);
  128. ctkTest::COMPARE(proxy.proxyValue(), expectedProxyValue);
  129. ctkTest::COMPARE(proxy.value(), 13.2);
  130. ctkTest::COMPARE(valueSpy.count(), 0);
  131. ctkTest::COMPARE(proxyValueSpy.count(), proxy.proxyValue() != 13.2 ? 1 : 0);
  132. if (proxyValueSpy.count())
  133. {
  134. double proxyValueFromSpy = proxyValueSpy.takeFirst().at(0).toDouble();
  135. ctkTest::COMPARE(proxyValueFromSpy, expectedProxyValue);
  136. }
  137. }
  138. // ----------------------------------------------------------------------------
  139. void ctkLinearValueProxyTester::testOffset_data()
  140. {
  141. QTest::addColumn<double>("offset");
  142. QTest::addColumn<double>("expectedProxyValue");
  143. QTest::newRow("Very very small offset") << 1 + 1e-26 << 14.2 + 1e-26;
  144. QTest::newRow("Not so small offset") << 1e-5 << 13.20001;
  145. QTest::newRow("Normal offset") << -2.0 << 11.2;
  146. QTest::newRow("Null offset") << 0.0 << 13.2;
  147. QTest::newRow("Null offset - again") << 0.0 << 13.2;
  148. QTest::newRow("Max offset") << std::numeric_limits<double>::max()
  149. << std::numeric_limits<double>::max() + 13.2;
  150. QTest::newRow("Min offset") << - std::numeric_limits<double>::max()
  151. << - std::numeric_limits<double>::max() + 13.2;
  152. QTest::newRow("Infinity offset") << std::numeric_limits<double>::infinity()
  153. << std::numeric_limits<double>::infinity();
  154. QTest::newRow(" - Infinity offset") << - std::numeric_limits<double>::infinity()
  155. << - std::numeric_limits<double>::infinity();
  156. QTest::newRow("Nan offset") << std::numeric_limits<double>::quiet_NaN()
  157. << std::numeric_limits<double>::quiet_NaN();
  158. }
  159. // ----------------------------------------------------------------------------
  160. void ctkLinearValueProxyTester::testSetValue()
  161. {
  162. ctkLinearValueProxy proxy;
  163. QFETCH(double, offset);
  164. proxy.setCoefficient(3.1);
  165. proxy.setOffset(offset);
  166. proxy.setValue(13.2);
  167. QSignalSpy valueSpy(&proxy, SIGNAL(valueChanged(double)));
  168. QSignalSpy proxyValueSpy(&proxy, SIGNAL(proxyValueChanged(double)));
  169. QFETCH(double, value);
  170. proxy.setValue(value);
  171. QFETCH(double, expectedProxyValue);
  172. ctkTest::COMPARE(proxy.proxyValue(), expectedProxyValue);
  173. ctkTest::COMPARE(proxy.value(), value);
  174. ctkTest::COMPARE(valueSpy.count(), proxy.value() != 13.2 ? 1 : 0);
  175. if (valueSpy.count())
  176. {
  177. double valueFromSpy = valueSpy.takeFirst().at(0).toDouble();
  178. ctkTest::COMPARE(valueFromSpy, value);
  179. }
  180. ctkTest::COMPARE(proxyValueSpy.count(), proxy.proxyValue() != 0.0 ? 1 : 0);
  181. if (proxyValueSpy.count())
  182. {
  183. double proxyValueFromSpy = proxyValueSpy.takeFirst().at(0).toDouble();
  184. ctkTest::COMPARE(proxyValueFromSpy, expectedProxyValue);
  185. }
  186. }
  187. // ----------------------------------------------------------------------------
  188. void ctkLinearValueProxyTester::testSetValue_data()
  189. {
  190. QTest::addColumn<double>("offset");
  191. QTest::addColumn<double>("value");
  192. QTest::addColumn<double>("expectedProxyValue");
  193. QTest::newRow("Linear transform: normal input") << -19.53 << 6.62 << 0.992;
  194. QTest::newRow("Linear transform: max")
  195. << -19.53 << std::numeric_limits<double>::max()
  196. << 3.1*std::numeric_limits<double>::max() - 19.53;
  197. QTest::newRow("Linear transform: min")
  198. << -19.53 << - std::numeric_limits<double>::max()
  199. << -3.1*std::numeric_limits<double>::max() - 19.53;
  200. QTest::newRow("Linear transform: infinity")
  201. << -19.53 << std::numeric_limits<double>::infinity()
  202. << std::numeric_limits<double>::infinity();
  203. QTest::newRow("Linear transform: - infinity")
  204. << -19.53 << - std::numeric_limits<double>::infinity()
  205. << - std::numeric_limits<double>::infinity();
  206. QTest::newRow("Linear transform: Nan")
  207. << -19.53 << std::numeric_limits<double>::quiet_NaN()
  208. << std::numeric_limits<double>::quiet_NaN();
  209. QTest::newRow("Null offset: normal input") << 0.0 << 6.62 << 20.522;
  210. QTest::newRow("Null offset: max")
  211. << 0.0 << std::numeric_limits<double>::max()
  212. << 3.1*std::numeric_limits<double>::max();
  213. QTest::newRow("Null offset: min")
  214. << 0.0 << - std::numeric_limits<double>::max()
  215. << -3.1*std::numeric_limits<double>::max();
  216. QTest::newRow("Null offset: infinity")
  217. << 0.0 << std::numeric_limits<double>::infinity()
  218. << std::numeric_limits<double>::infinity();
  219. QTest::newRow("Null offset: - infinity")
  220. << 0.0 << - std::numeric_limits<double>::infinity()
  221. << - std::numeric_limits<double>::infinity();
  222. QTest::newRow("Null offset: Nan")
  223. << 0.0 << std::numeric_limits<double>::quiet_NaN()
  224. << std::numeric_limits<double>::quiet_NaN();
  225. }
  226. // ----------------------------------------------------------------------------
  227. void ctkLinearValueProxyTester::testSetValueNullCoeff()
  228. {
  229. ctkLinearValueProxy proxy;
  230. proxy.setCoefficient(0.0);
  231. proxy.setOffset(-19.53);
  232. proxy.setValue(13.2);
  233. QSignalSpy valueSpy(&proxy, SIGNAL(valueChanged(double)));
  234. QSignalSpy proxyValueSpy(&proxy, SIGNAL(proxyValueChanged(double)));
  235. QFETCH(double, value);
  236. proxy.setValue(value);
  237. QFETCH(double, expectedProxyValue);
  238. ctkTest::COMPARE(proxy.proxyValue(), expectedProxyValue);
  239. ctkTest::COMPARE(proxy.value(), value);
  240. ctkTest::COMPARE(valueSpy.count(), proxy.value() != 13.2 ? 1 : 0);
  241. if (valueSpy.count())
  242. {
  243. double valueFromSpy = valueSpy.takeFirst().at(0).toDouble();
  244. ctkTest::COMPARE(valueFromSpy, value);
  245. }
  246. QFETCH(bool, shouldExpectProxyValue);
  247. ctkTest::COMPARE(proxyValueSpy.count(), shouldExpectProxyValue ? 1 : 0);
  248. if (proxyValueSpy.count())
  249. {
  250. double proxyValueFromSpy = proxyValueSpy.takeFirst().at(0).toDouble();
  251. ctkTest::COMPARE(proxyValueFromSpy, expectedProxyValue);
  252. }
  253. }
  254. // ----------------------------------------------------------------------------
  255. void ctkLinearValueProxyTester::testSetValueNullCoeff_data()
  256. {
  257. QTest::addColumn<double>("value");
  258. QTest::addColumn<bool>("shouldExpectProxyValue");
  259. QTest::addColumn<double>("expectedProxyValue");
  260. QTest::newRow("Null coeff: normal input") << 6.62 << false << -19.53;
  261. QTest::newRow("Null coeff: max")
  262. << std::numeric_limits<double>::max() << false << -19.53;;
  263. QTest::newRow("Null coeff: min")
  264. << - std::numeric_limits<double>::max() << false << -19.53;
  265. QTest::newRow("Null coeff: infinity")
  266. << std::numeric_limits<double>::infinity() << true
  267. << std::numeric_limits<double>::quiet_NaN();
  268. QTest::newRow("Null coeff: - infinity")
  269. << - std::numeric_limits<double>::infinity() << true
  270. << std::numeric_limits<double>::quiet_NaN();
  271. QTest::newRow("Null coeff: Nan") << std::numeric_limits<double>::quiet_NaN()
  272. << true << std::numeric_limits<double>::quiet_NaN();
  273. }
  274. // ----------------------------------------------------------------------------
  275. void ctkLinearValueProxyTester::testSetProxyValue()
  276. {
  277. ctkLinearValueProxy proxy;
  278. QFETCH(double, offset);
  279. proxy.setCoefficient(3.1);
  280. proxy.setOffset(offset);
  281. proxy.setProxyValue(13.2);
  282. double oldValue = proxy.value();
  283. QSignalSpy valueSpy(&proxy, SIGNAL(valueChanged(double)));
  284. QSignalSpy proxyValueSpy(&proxy, SIGNAL(proxyValueChanged(double)));
  285. QFETCH(double, proxyValue);
  286. proxy.setProxyValue(proxyValue);
  287. QFETCH(double, expectedValue);
  288. ctkTest::COMPARE(proxy.proxyValue(), proxyValue);
  289. ctkTest::COMPARE(proxy.value(), expectedValue);
  290. ctkTest::COMPARE(valueSpy.count(), proxy.value() != oldValue ? 1 : 0);
  291. if (valueSpy.count())
  292. {
  293. double valueFromSpy = valueSpy.takeFirst().at(0).toDouble();
  294. ctkTest::COMPARE(valueFromSpy, expectedValue);
  295. }
  296. ctkTest::COMPARE(proxyValueSpy.count(), proxy.proxyValue() != 13.2 ? 1 : 0);
  297. if (proxyValueSpy.count())
  298. {
  299. double proxyValueFromSpy = proxyValueSpy.takeFirst().at(0).toDouble();
  300. ctkTest::COMPARE(proxyValueFromSpy, proxyValue);
  301. }
  302. }
  303. // ----------------------------------------------------------------------------
  304. void ctkLinearValueProxyTester::testSetProxyValue_data()
  305. {
  306. QTest::addColumn<double>("offset");
  307. QTest::addColumn<double>("proxyValue");
  308. QTest::addColumn<double>("expectedValue");
  309. QTest::newRow("Linear transform: normal input") << -19.53 << 1.55 << 6.8;
  310. QTest::newRow("Linear transform: max")
  311. << -19.53 << std::numeric_limits<double>::max()
  312. << (std::numeric_limits<double>::max() + 19.53) / 3.1;
  313. QTest::newRow("Linear transform: min")
  314. << -19.53 << - std::numeric_limits<double>::max()
  315. << ( - std::numeric_limits<double>::max() + 19.53) / 3.1;
  316. QTest::newRow("Linear transform: infinity")
  317. << -19.53 << std::numeric_limits<double>::infinity()
  318. << std::numeric_limits<double>::infinity();
  319. QTest::newRow("Linear transform: - infinity")
  320. << -19.53 << - std::numeric_limits<double>::infinity()
  321. << - std::numeric_limits<double>::infinity();
  322. QTest::newRow("Linear transform: Nan")
  323. << -19.53 << std::numeric_limits<double>::quiet_NaN()
  324. << std::numeric_limits<double>::quiet_NaN();
  325. QTest::newRow("Null offset: normal input") << 0.0 << 232.5 << 75.0;
  326. QTest::newRow("Null offset: max")
  327. << 0.0 << std::numeric_limits<double>::max()
  328. << std::numeric_limits<double>::max() / 3.1;
  329. QTest::newRow("Null offset: min")
  330. << 0.0 << - std::numeric_limits<double>::max()
  331. << -std::numeric_limits<double>::max() / 3.1;
  332. QTest::newRow("Null offset: infinity")
  333. << 0.0 << std::numeric_limits<double>::infinity()
  334. << std::numeric_limits<double>::infinity();
  335. QTest::newRow("Null offset: - infinity")
  336. << 0.0 << - std::numeric_limits<double>::infinity()
  337. << - std::numeric_limits<double>::infinity();
  338. QTest::newRow("Null offset: Nan")
  339. << 0.0 << std::numeric_limits<double>::quiet_NaN()
  340. << std::numeric_limits<double>::quiet_NaN();
  341. }
  342. // ----------------------------------------------------------------------------
  343. void ctkLinearValueProxyTester::testSetProxyValueNullCoeff()
  344. {
  345. ctkLinearValueProxy proxy;
  346. proxy.setCoefficient(0.0);
  347. proxy.setOffset(-19.53);
  348. proxy.setValue(13.2);
  349. QSignalSpy valueSpy(&proxy, SIGNAL(valueChanged(double)));
  350. QSignalSpy proxyValueSpy(&proxy, SIGNAL(proxyValueChanged(double)));
  351. QFETCH(double, proxyValue);
  352. proxy.setProxyValue(proxyValue);
  353. QFETCH(double, expectedValue);
  354. ctkTest::COMPARE(proxy.proxyValue(), proxyValue);
  355. ctkTest::COMPARE(proxy.value(), expectedValue);
  356. ctkTest::COMPARE(valueSpy.count(), proxy.value() != 13.2 ? 1 : 0);
  357. if (valueSpy.count())
  358. {
  359. double valueFromSpy = valueSpy.takeFirst().at(0).toDouble();
  360. ctkTest::COMPARE(valueFromSpy, expectedValue);
  361. }
  362. ctkTest::COMPARE(proxyValueSpy.count(), proxy.proxyValue() != 0.0 ? 1 : 0);
  363. if (proxyValueSpy.count())
  364. {
  365. double proxyValueFromSpy = proxyValueSpy.takeFirst().at(0).toDouble();
  366. ctkTest::COMPARE(proxyValueFromSpy, proxyValue);
  367. }
  368. }
  369. // ----------------------------------------------------------------------------
  370. void ctkLinearValueProxyTester::testSetProxyValueNullCoeff_data()
  371. {
  372. QTest::addColumn<double>("proxyValue");
  373. QTest::addColumn<double>("expectedValue");
  374. QTest::newRow("Null coeff: normal input") << 6.62
  375. << std::numeric_limits<double>::infinity();
  376. QTest::newRow("Null coeff: normal negative input") << -398.6
  377. << - std::numeric_limits<double>::infinity();
  378. QTest::newRow("Null coeff: max")
  379. << std::numeric_limits<double>::max()
  380. << std::numeric_limits<double>::infinity();
  381. QTest::newRow("Null coeff: min")
  382. << - std::numeric_limits<double>::max()
  383. << - std::numeric_limits<double>::infinity();
  384. QTest::newRow("Null coeff: infinity")
  385. << std::numeric_limits<double>::infinity()
  386. << std::numeric_limits<double>::infinity();
  387. QTest::newRow("Null coeff: - infinity")
  388. << - std::numeric_limits<double>::infinity()
  389. << - std::numeric_limits<double>::infinity();
  390. QTest::newRow("Null coeff: Nan") << std::numeric_limits<double>::quiet_NaN()
  391. << std::numeric_limits<double>::quiet_NaN();
  392. }
  393. // ----------------------------------------------------------------------------
  394. void ctkLinearValueProxyTester::testProxyModified()
  395. {
  396. ctkLinearValueProxy proxy;
  397. proxy.setCoefficient(5.0);
  398. proxy.setOffset(5.0);
  399. QSignalSpy proxyAboutToBeModifiedSpy(&proxy, SIGNAL(proxyAboutToBeModified()));
  400. QSignalSpy proxyModifiedSpy(&proxy, SIGNAL(proxyModified()));
  401. QFETCH(bool, changeCoefficient);
  402. QFETCH(double, coefficientOrOffset);
  403. if (changeCoefficient)
  404. {
  405. proxy.setCoefficient(coefficientOrOffset);
  406. }
  407. else
  408. {
  409. proxy.setOffset(coefficientOrOffset);
  410. }
  411. QFETCH(int, expectedSignalCount);
  412. ctkTest::COMPARE(proxyAboutToBeModifiedSpy.count(), expectedSignalCount);
  413. ctkTest::COMPARE(proxyModifiedSpy.count(), expectedSignalCount);
  414. }
  415. // ----------------------------------------------------------------------------
  416. void ctkLinearValueProxyTester::testProxyModified_data()
  417. {
  418. QTest::addColumn<double>("coefficientOrOffset");
  419. QTest::addColumn<bool>("changeCoefficient");
  420. QTest::addColumn<int>("expectedSignalCount");
  421. QTest::newRow("change coefficient") << 10.0 << true << 1;
  422. QTest::newRow("same coefficient") << 5.0 << true << 0;
  423. QTest::newRow("null coefficient") << 0.0 << true << 1;
  424. QTest::newRow("change offset") << 10.0 << false << 1;
  425. QTest::newRow("same offset") << 5.0 << false << 0;
  426. QTest::newRow("null offset") << 0.0 << false << 1;
  427. }
  428. // ----------------------------------------------------------------------------
  429. CTK_TEST_MAIN(ctkLinearValueProxyTest)
  430. #include "moc_ctkLinearValueProxyTest.cpp"