| 573 | } |
| 574 | |
| 575 | static void test_positions() { |
| 576 | { |
| 577 | common_chat_msg_parser builder("Hello, world!", /* is_partial= */ false, {}); |
| 578 | assert_equals<size_t>(0, builder.pos()); |
| 579 | assert_throws([&]() { builder.move_to(100); }); |
| 580 | assert_equals<size_t>(0, builder.pos()); |
| 581 | assert_throws([&]() { builder.move_back(1); }); |
| 582 | assert_equals<size_t>(0, builder.pos()); |
| 583 | |
| 584 | builder.move_to(8); |
| 585 | assert_equals<size_t>(8, builder.pos()); |
| 586 | builder.move_back(1); |
| 587 | assert_equals<size_t>(7, builder.pos()); |
| 588 | assert_equals("world!", builder.consume_rest()); |
| 589 | |
| 590 | builder.move_to(0); |
| 591 | assert_equals<size_t>(0, builder.pos()); |
| 592 | |
| 593 | assert_throws([&]() { builder.finish(); }); |
| 594 | assert_equals<size_t>(0, builder.pos()); |
| 595 | |
| 596 | builder.move_to(builder.input().size()); |
| 597 | builder.finish(); |
| 598 | } |
| 599 | { |
| 600 | common_chat_msg_parser builder("Hello, world!", /* is_partial= */ true, {}); |
| 601 | |
| 602 | builder.move_to(builder.input().size()); |
| 603 | assert_equals<size_t>(builder.input().size(), builder.pos()); |
| 604 | builder.finish(); |
| 605 | } |
| 606 | } |
| 607 | |
| 608 | int main() { |
| 609 | test_positions(); |
no test coverage detected