-#ifndef YENC_H
-#define YENC_H
+#pragma once
+
+#include "test.qh"
#define yenc_single(c, ret) \
- MACRO_BEGIN { \
+ MACRO_BEGIN \
int conv = c; \
conv += 42; \
if (conv >= 256) conv -= 256; \
ret = yenc_it; \
break; \
} \
- case '\0': \
+ case 0: \
case '\n': \
case '\r': \
case '=': \
break; \
} \
} \
- } MACRO_END
+ MACRO_END
#define ydec_single(stringiter, ret) \
- MACRO_BEGIN { \
+ MACRO_BEGIN \
int conv = STRING_ITERATOR_GET(stringiter); \
- bool esc = false; \
- if (conv == '=') \
- { \
- esc = true; \
- conv = STRING_ITERATOR_GET(stringiter); \
- conv -= 64; \
+ if (conv <= 0) { \
+ ret = -1; \
+ } else { \
+ if (conv == '=') { \
+ conv = STRING_ITERATOR_GET(stringiter); \
+ conv -= 64; \
+ } \
+ if (conv < 42) conv += 256; \
+ conv -= 42; \
+ ret = conv; \
} \
- if (conv < 42) conv += 256; \
- conv -= 42; \
- ret = conv; \
- } MACRO_END
+ MACRO_END
-TEST(yEncDec)
+TEST(yEnc, EncodeDecode)
{
- for (int i = 0; i < 255; ++i)
+ for (int i = 0; i <= 255; ++i)
{
int expect = i;
- string fragment;
+ string fragment = string_null;
yenc_single(expect, fragment);
- int encdec;
+ int encdec = 0;
STRING_ITERATOR(fragmentiterator, fragment, 0);
ydec_single(fragmentiterator, encdec);
- TEST_Check(encdec == expect);
+ EXPECT_EQ(expect, encdec);
}
- TEST_OK();
+ SUCCEED();
}
-
-#endif