| 463 | } |
| 464 | |
| 465 | void |
| 466 | test_Ip() |
| 467 | { |
| 468 | using namespace date; |
| 469 | using namespace std::chrono; |
| 470 | using date::sys_time; |
| 471 | { |
| 472 | std::istringstream in{"2016-12-11 1 pm"}; |
| 473 | sys_time<hours> tp; |
| 474 | in >> parse("%F %I %p", tp); |
| 475 | assert(!in.fail()); |
| 476 | assert(!in.bad()); |
| 477 | assert(tp == sys_days{2016_y/12/11} + hours{13}); |
| 478 | } |
| 479 | { |
| 480 | std::istringstream in{"2016-12-11 1 am"}; |
| 481 | sys_time<hours> tp; |
| 482 | in >> parse("%F %I %p", tp); |
| 483 | assert(!in.fail()); |
| 484 | assert(!in.bad()); |
| 485 | assert(tp == sys_days{2016_y/12/11} + hours{1}); |
| 486 | } |
| 487 | { |
| 488 | std::istringstream in{"2016-12-11 13 am"}; |
| 489 | sys_time<hours> tp; |
| 490 | in >> parse("%F %I %p", tp); |
| 491 | assert(in.fail()); |
| 492 | } |
| 493 | { |
| 494 | std::istringstream in{"2016-12-11 +1 pm"}; |
| 495 | sys_time<hours> tp; |
| 496 | in >> parse("%F %I %p", tp); |
| 497 | assert(in.fail()); |
| 498 | } |
| 499 | } |
| 500 | |
| 501 | void |
| 502 | test_j() |