| 320 | } |
| 321 | |
| 322 | void function_arg_valid() const { |
| 323 | constexpr char xmldata[] = "<?xml version=\"1.0\"?>\n" |
| 324 | "<def>\n" |
| 325 | " <function name=\"foo\">\n" |
| 326 | " <arg nr=\"1\"><valid>1:</valid></arg>\n" |
| 327 | " <arg nr=\"2\"><valid>-7:0</valid></arg>\n" |
| 328 | " <arg nr=\"3\"><valid>1:5,8</valid></arg>\n" |
| 329 | " <arg nr=\"4\"><valid>-1,5</valid></arg>\n" |
| 330 | " <arg nr=\"5\"><valid>:1,5</valid></arg>\n" |
| 331 | " <arg nr=\"6\"><valid>1.5:</valid></arg>\n" |
| 332 | " <arg nr=\"7\"><valid>-6.7:-5.5,-3.3:-2.7</valid></arg>\n" |
| 333 | " <arg nr=\"8\"><valid>0.0:</valid></arg>\n" |
| 334 | " <arg nr=\"9\"><valid>:2.0</valid></arg>\n" |
| 335 | " <arg nr=\"10\"><valid>0.0</valid></arg>\n" |
| 336 | " <arg nr=\"11\"><valid>!0.0</valid></arg>\n" |
| 337 | " </function>\n" |
| 338 | "</def>"; |
| 339 | |
| 340 | Library library; |
| 341 | ASSERT(LibraryHelper::loadxmldata(library, xmldata, sizeof(xmldata))); |
| 342 | |
| 343 | const char code[] = "foo(a,b,c,d,e,f,g,h,i,j,k);"; |
| 344 | SimpleTokenList tokenList(code); |
| 345 | tokenList.front()->next()->astOperand1(tokenList.front()); |
| 346 | |
| 347 | // 1- |
| 348 | ASSERT_EQUALS(false, library.isIntArgValid(tokenList.front(), 1, -10, settingsDefault)); |
| 349 | ASSERT_EQUALS(false, library.isFloatArgValid(tokenList.front(), 1, -10.0, settingsDefault)); |
| 350 | ASSERT_EQUALS(false, library.isIntArgValid(tokenList.front(), 1, 0, settingsDefault)); |
| 351 | ASSERT_EQUALS(false, library.isFloatArgValid(tokenList.front(), 1, 0.0, settingsDefault)); |
| 352 | ASSERT_EQUALS(true, library.isIntArgValid(tokenList.front(), 1, 1, settingsDefault)); |
| 353 | ASSERT_EQUALS(true, library.isFloatArgValid(tokenList.front(), 1, 1.0, settingsDefault)); |
| 354 | ASSERT_EQUALS(true, library.isIntArgValid(tokenList.front(), 1, 10, settingsDefault)); |
| 355 | ASSERT_EQUALS(true, library.isFloatArgValid(tokenList.front(), 1, 10.0, settingsDefault)); |
| 356 | |
| 357 | // -7-0 |
| 358 | ASSERT_EQUALS(false, library.isIntArgValid(tokenList.front(), 2, -10, settingsDefault)); |
| 359 | ASSERT_EQUALS(false, library.isFloatArgValid(tokenList.front(), 2, -10.0, settingsDefault)); |
| 360 | ASSERT_EQUALS(false, library.isFloatArgValid(tokenList.front(), 2, -7.5, settingsDefault)); |
| 361 | ASSERT_EQUALS(false, library.isFloatArgValid(tokenList.front(), 2, -7.1, settingsDefault)); |
| 362 | ASSERT_EQUALS(true, library.isIntArgValid(tokenList.front(), 2, -7, settingsDefault)); |
| 363 | ASSERT_EQUALS(true, library.isFloatArgValid(tokenList.front(), 2, -7.0, settingsDefault)); |
| 364 | ASSERT_EQUALS(true, library.isIntArgValid(tokenList.front(), 2, -3, settingsDefault)); |
| 365 | ASSERT_EQUALS(true, library.isFloatArgValid(tokenList.front(), 2, -3.0, settingsDefault)); |
| 366 | ASSERT_EQUALS(true, library.isFloatArgValid(tokenList.front(), 2, -3.5, settingsDefault)); |
| 367 | ASSERT_EQUALS(true, library.isIntArgValid(tokenList.front(), 2, 0, settingsDefault)); |
| 368 | ASSERT_EQUALS(true, library.isFloatArgValid(tokenList.front(), 2, 0.0, settingsDefault)); |
| 369 | ASSERT_EQUALS(false, library.isFloatArgValid(tokenList.front(), 2, 0.5, settingsDefault)); |
| 370 | ASSERT_EQUALS(false, library.isIntArgValid(tokenList.front(), 2, 1, settingsDefault)); |
| 371 | ASSERT_EQUALS(false, library.isFloatArgValid(tokenList.front(), 2, 1.0, settingsDefault)); |
| 372 | |
| 373 | // 1-5,8 |
| 374 | ASSERT_EQUALS(false, library.isIntArgValid(tokenList.front(), 3, 0, settingsDefault)); |
| 375 | ASSERT_EQUALS(false, library.isFloatArgValid(tokenList.front(), 3, 0.0, settingsDefault)); |
| 376 | ASSERT_EQUALS(true, library.isIntArgValid(tokenList.front(), 3, 1, settingsDefault)); |
| 377 | ASSERT_EQUALS(true, library.isFloatArgValid(tokenList.front(), 3, 1.0, settingsDefault)); |
| 378 | ASSERT_EQUALS(true, library.isIntArgValid(tokenList.front(), 3, 3, settingsDefault)); |
| 379 | ASSERT_EQUALS(true, library.isFloatArgValid(tokenList.front(), 3, 3.0, settingsDefault)); |
nothing calls this directly
no test coverage detected