From c3b86031bd90fe33ba60fe21082649450892aaf2 Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Wed, 7 Mar 2018 17:00:11 -0600 Subject: [PATCH] Add tests for primary, alternate functions --- include/apple2.text.h | 4 ++-- src/apple2.text.c | 4 ++-- tests/apple2.text.c | 46 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/include/apple2.text.h b/include/apple2.text.h index 7dbbdba..4bbd799 100644 --- a/include/apple2.text.h +++ b/include/apple2.text.h @@ -5,8 +5,8 @@ #include "vm_bitfont.h" #include "vm_bits.h" -extern char apple2_text_alternate(char); -extern char apple2_text_primary(char); +extern char apple2_text_alternate(vm_8bit); +extern char apple2_text_primary(vm_8bit); extern int apple2_text_area(vm_area *, vm_bitfont *, size_t); extern void apple2_text_draw(apple2 *, size_t); diff --git a/src/apple2.text.c b/src/apple2.text.c index 4187a1a..960bdbd 100644 --- a/src/apple2.text.c +++ b/src/apple2.text.c @@ -230,7 +230,7 @@ static char alternate_display[] = { * character code. */ char -apple2_text_primary(char ch) +apple2_text_primary(vm_8bit ch) { return primary_display[ch]; } @@ -240,7 +240,7 @@ apple2_text_primary(char ch) * character code. */ char -apple2_text_alternate(char ch) +apple2_text_alternate(vm_8bit ch) { return alternate_display[ch]; } diff --git a/tests/apple2.text.c b/tests/apple2.text.c index 7f55f07..127c0d0 100644 --- a/tests/apple2.text.c +++ b/tests/apple2.text.c @@ -46,3 +46,49 @@ Test(apple2_text, area) // yoff value I'm getting back is really out of whack, and I want to // do some more use-testing first } + +Test(apple2_text, primary) +{ + static char upper[] = { + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', + }; + + static char lower[] = { + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', ' ', + }; + + for (int i = 0; i < sizeof(upper); i++) { + cr_assert_eq(apple2_text_primary(i), upper[i]); + } + + for (int i = 0; i < sizeof(lower); i++) { + cr_assert_eq(apple2_text_primary(i + 0xe0), lower[i]); + } +} + +Test(apple2_text, alternate) +{ + static char upper[] = { + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', + }; + + static char lower[] = { + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', ' ', + }; + + for (int i = 0; i < sizeof(upper); i++) { + cr_assert_eq(apple2_text_alternate(i + 0x80), upper[i]); + } + + for (int i = 0; i < sizeof(lower); i++) { + cr_assert_eq(apple2_text_alternate(i + 0x60), lower[i]); + } +}