diff --git a/skeletons/tests/check-PER.c b/skeletons/tests/check-PER.c
index 5fcb1ae..6d355e8 100644
--- a/skeletons/tests/check-PER.c
+++ b/skeletons/tests/check-PER.c
@@ -1,8 +1,8 @@
 #include <per_support.c>
 #include <assert.h>
 
-int
-main() {
+static void
+check_per_decoding() {
 	uint8_t buf[] = { 0xB7, 0x19, 0x2F, 0xEE, 0xAD };
 	uint8_t tmpbuf[10];
 	int32_t z;
@@ -119,6 +119,102 @@
 	assert(tmpbuf[2] == buf[2]);
 	assert(tmpbuf[3] == buf[3]);
 	assert(tmpbuf[4] == buf[4]);
+}
 
+static int Ignore(const void *data, size_t size, void *op_key) {
+	return 0;
+}
+
+static void
+check_per_encoding() {
+	asn_per_outp_t po;
+	po.buffer = po.tmpspace;
+	po.nboff = 0;
+	po.nbits = 0;
+	po.outper = Ignore;
+	po.op_key = 0;
+	po.tmpspace[0] = 0xff;
+	int ret;
+
+	ret = per_put_few_bits(&po, 0, 0);
+	assert(ret == 0);
+	assert(po.nboff == 0);
+	assert(po.buffer == po.tmpspace);
+	assert(po.tmpspace[0] == 0xff);
+
+	ret = per_put_few_bits(&po, 0, 1);
+	assert(ret == 0);
+	assert(po.nboff == 1);
+	assert(po.nbits == 8 * sizeof(po.tmpspace));
+	assert(po.buffer == po.tmpspace);
+	assert(po.tmpspace[0] == 0x00);
+
+	ret = per_put_few_bits(&po, 1, 1);
+	assert(ret == 0);
+	assert(po.nboff == 2);
+	assert(po.nbits == 8 * sizeof(po.tmpspace));
+	assert(po.buffer == po.tmpspace);
+	assert(po.tmpspace[0] == 0x40);
+
+	ret = per_put_few_bits(&po, 1, 1);
+	assert(ret == 0);
+	assert(po.nboff == 3);
+	assert(po.nbits == 8 * sizeof(po.tmpspace));
+	assert(po.buffer == po.tmpspace);
+	assert(po.tmpspace[0] == 0x60);
+
+	ret = per_put_few_bits(&po, 15, 5);
+	assert(ret == 0);
+	assert(po.nboff == 8);
+	assert(po.nbits == 8 * sizeof(po.tmpspace));
+	assert(po.buffer == po.tmpspace);
+	assert(po.tmpspace[0] == 0x6F);
+
+	ret = per_put_few_bits(&po, 0xf0ff, 16);
+	assert(ret == 0);
+	assert(po.nboff == 16);
+	assert(po.nbits == 8 * sizeof(po.tmpspace) - 8);
+	assert(po.buffer == po.tmpspace + 1);
+	assert(po.tmpspace[0] == 0x6F);
+	assert(po.tmpspace[1] == 0xf0);
+	assert(po.tmpspace[2] == 0xff);
+
+	po.nboff--;
+
+	ret = per_put_few_bits(&po, 2, 1);
+	assert(ret == 0);
+	assert(po.nboff == 8);
+	assert(po.nbits == 8 * sizeof(po.tmpspace) - 16);
+	assert(po.buffer == po.tmpspace + 2);
+	assert(po.tmpspace[0] == 0x6F);
+	assert(po.tmpspace[1] == 0xf0);
+	assert(po.tmpspace[2] == 0xfe);
+
+	ret = per_put_few_bits(&po, 2, 32);
+	assert(ret == -1);
+
+	ret = per_put_few_bits(&po, 2, -1);
+	assert(ret == -1);
+
+	ret = per_put_few_bits(&po, -1, 31);
+	assert(ret == 0);
+	assert(po.nboff == 31);
+	assert(po.nbits == 8 * sizeof(po.tmpspace) - 24);
+	assert(po.buffer == po.tmpspace + 3);
+	assert(po.tmpspace[0] == 0x6F);
+	assert(po.tmpspace[1] == 0xf0);
+	assert(po.tmpspace[2] == 0xfe);
+	assert(po.tmpspace[3] == 0xff);
+	assert(po.tmpspace[4] == 0xff);
+	assert(po.tmpspace[5] == 0xff);
+	assert(po.tmpspace[6] == 0xfe);
+
+
+}
+
+int
+main() {
+	check_per_decoding();
+	check_per_encoding();
 	return 0;
 }
