Hi Max,
Unfortunately I could not find any tests for the code in question so the only way to test it is by:
I uploaded tests recently. You can find them here: https://gerrit.osmocom.org/#/c/933/4/tests/coding/coding_test.c
I think the puncturing code should be part of the library (otherwise every user will have to reimplement the same thing again and again).
I am agree with you. We recently discussed this question with Tom Tsou. He said, that there was some performance related reasons to perform puncturing inside both gsm0503_pdtch_encode() / gsm0503_pdtch_decode().
With best regards, Vadim Yanitskiy.