diff --git a/pw_base64/base64.cc b/pw_base64/base64.cc
index 7b2396c..77baf37 100644
--- a/pw_base64/base64.cc
+++ b/pw_base64/base64.cc
@@ -26,7 +26,7 @@
 constexpr char kPadding = '=';
 
 // Table that encodes a 6-bit pattern as a Base64 character
-constexpr char encode_bits[64] = {
+constexpr char kEncodeTable[64] = {
     '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',
     'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',     'l',    'm',
@@ -34,16 +34,18 @@
     '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', kChar62, kChar63};
 
 constexpr char BitGroup0Char(uint8_t byte0) {
-  return encode_bits[(byte0 & 0b11111100) >> 2];
+  return kEncodeTable[(byte0 & 0b11111100) >> 2];
 }
 constexpr char BitGroup1Char(uint8_t byte0, uint8_t byte1 = 0) {
-  return encode_bits[((byte0 & 0b00000011) << 4) | ((byte1 & 0b11110000) >> 4)];
+  return kEncodeTable[((byte0 & 0b00000011) << 4) |
+                      ((byte1 & 0b11110000) >> 4)];
 }
 constexpr char BitGroup2Char(uint8_t byte1, uint8_t byte2 = 0) {
-  return encode_bits[((byte1 & 0b00001111) << 2) | ((byte2 & 0b11000000) >> 6)];
+  return kEncodeTable[((byte1 & 0b00001111) << 2) |
+                      ((byte2 & 0b11000000) >> 6)];
 }
 constexpr char BitGroup3Char(uint8_t byte2) {
-  return encode_bits[byte2 & 0b00111111];
+  return kEncodeTable[byte2 & 0b00111111];
 }
 
 // Decoding functions
@@ -54,7 +56,7 @@
 // Table that decodes a Base64 character to its 6-bit value. Supports the
 // standard (+/) and URL-safe (-_) alphabets. Starts from the lowest-value valid
 // character, which is +.
-constexpr uint8_t decode_char[] = {
+constexpr uint8_t kDecodeTable[] = {
     62, kX, 62, kX, 63, 52, 53, 54, 55, 56,  //  0 - 09
     57, 58, 59, 60, 61, kX, kX, kX, 0,  kX,  // 10 - 19
     kX, kX, 0,  1,  2,  3,  4,  5,  6,  7,   // 20 - 29
@@ -66,7 +68,7 @@
 };
 
 constexpr uint8_t CharToBits(char ch) {
-  return decode_char[ch - kMinValidChar];
+  return kDecodeTable[ch - kMinValidChar];
 }
 
 constexpr uint8_t Byte0(uint8_t bits0, uint8_t bits1) {
diff --git a/pw_base64/base64_test.cc b/pw_base64/base64_test.cc
index 32f7d7b..7447831 100644
--- a/pw_base64/base64_test.cc
+++ b/pw_base64/base64_test.cc
@@ -152,104 +152,24 @@
 };
 
 constexpr EncodedData kRandomTestData[] = {
-    {2, "\x63\xa9", "Y6k="},
-    {2, "\xa1\x49", "oUk="},
-    {2, "\x14\x58", "FFg="},
-    {2, "\x5d\xa2", "XaI="},
-    {2, "\x7c\x80", "fIA="},
-    {2, "\xc1\xbb", "wbs="},
-    {2, "\x08\x00", "CAA="},
-    {2, "\xd8\x88", "2Ig="},
     {2, "\x74\x6d", "dG0="},
     {2, "\x22\x86", "IoY="},
-    {3, "\x69\x89\x03", "aYkD"},
-    {3, "\x6c\xcb\xc5", "bMvF"},
-    {3, "\x72\x36\x8b", "cjaL"},
-    {3, "\xd3\xdc\xe0", "09zg"},
-    {3, "\x5d\x1f\x8a", "XR+K"},
-    {3, "\x0d\xc0\x5b", "DcBb"},
-    {3, "\xe3\x11\x1e", "4xEe"},
-    {3, "\xbc\x3c\xb9", "vDy5"},
     {3, "\xc0\xa2\x1c", "wKIc"},
     {3, "\xa9\x67\xfb", "qWf7"},
-    {4, "\x80\xf5\xc8\xd4", "gPXI1A=="},
-    {4, "\xa3\x54\x4a\xfa", "o1RK+g=="},
-    {4, "\x69\xdb\x14\x4c", "adsUTA=="},
-    {4, "\x95\x20\x23\x1a", "lSAjGg=="},
-    {4, "\xb9\x2c\x00\x11", "uSwAEQ=="},
-    {4, "\xef\xeb\x23\x44", "7+sjRA=="},
-    {4, "\xcf\xa9\xe6\x85", "z6nmhQ=="},
-    {4, "\xc5\xe0\x36\xde", "xeA23g=="},
     {4, "\x77\xe1\x63\x51", "d+FjUQ=="},
     {4, "\x7d\xa6\x8c\x5e", "faaMXg=="},
-    {5, "\x6e\xb8\x91\x3f\xac", "briRP6w="},
-    {5, "\xd1\x16\x7f\x1d\xef", "0RZ/He8="},  // inclusive-language: ignore
-    {5, "\x42\x95\xfb\x24\xee", "QpX7JO4="},
-    {5, "\x19\xfd\xe5\x96\xc1", "Gf3llsE="},
-    {5, "\x42\x5a\xb3\xfe\x13", "Qlqz/hM="},
-    {5, "\x2b\xf7\x1a\xcc\x13", "K/cazBM="},
-    {5, "\xba\x8f\x0d\xf7\xc1", "uo8N98E="},
-    {5, "\x28\xa6\x77\x2d\xfc", "KKZ3Lfw="},
     {5, "\x68\xaa\x19\x59\xd0", "aKoZWdA="},
     {5, "\x46\x73\xd3\x54\x7e", "RnPTVH4="},
-    {6, "\x1f\x88\x91\xbb\xd7\x10", "H4iRu9cQ"},
-    {6, "\x37\x23\x3b\x5a\x26\xe4", "NyM7Wibk"},
-    {6, "\xd2\xa0\xf4\x13\x91\xe6", "0qD0E5Hm"},
-    {6, "\x55\xe8\xe9\x06\x5d\xc3", "VejpBl3D"},
-    {6, "\xeb\xf5\xd8\x62\x3c\x5e", "6/XYYjxe"},
-    {6, "\xee\xad\x7e\xc4\x66\x83", "7q1+xGaD"},
-    {6, "\xbb\x07\x2c\x26\x3f\xb7", "uwcsJj+3"},
-    {6, "\xed\xf3\x34\x94\xab\x41", "7fM0lKtB"},
     {6, "\x3f\xe8\x18\x4c\xe8\xf4", "P+gYTOj0"},
     {6, "\x0a\xdd\x39\xbc\x1f\x65", "Ct05vB9l"},
-    {7, "\xac\xcf\xb2\xd5\xee\xa2\x8e", "rM+y1e6ijg=="},
-    {7, "\x78\x63\xeb\x3f\x07\xde\x04", "eGPrPwfeBA=="},
-    {7, "\x7a\xd7\x3b\x5c\x09\xc2\x93", "etc7XAnCkw=="},
-    {7, "\xd4\xe4\xda\xe3\xf3\x4d\xe9", "1OTa4/NN6Q=="},
-    {7, "\xa6\xc6\x7c\x47\xd5\xbe\xd3", "psZ8R9W+0w=="},
-    {7, "\x34\xad\x5d\x02\x47\xa1\x39", "NK1dAkehOQ=="},
-    {7, "\x33\x98\xd7\x02\x46\x4e\xad", "M5jXAkZOrQ=="},
-    {7, "\x08\x4d\x48\x48\xb1\x3d\x05", "CE1ISLE9BQ=="},
     {7, "\xc4\x5e\x4a\x6d\x4a\x04\xb6", "xF5KbUoEtg=="},
     {7, "\x12\xe9\xf4\xaa\x2e\x4c\x31", "Eun0qi5MMQ=="},
-    {8, "\xff\x15\x25\x7e\x7b\xc9\x7b\x60", "/xUlfnvJe2A="},
-    {8, "\xc7\xbb\x0b\x62\x5c\x62\x41\xc2", "x7sLYlxiQcI="},
-    {8, "\x48\x49\x6d\x7c\xca\xb7\xae\xed", "SEltfMq3ru0="},
-    {8, "\xfd\xec\x13\xd6\x93\x9f\xba\xe0", "/ewT1pOfuuA="},
-    {8, "\x7e\xff\xd2\xdd\x0e\xe2\x6c\x60", "fv/S3Q7ibGA="},
-    {8, "\xe5\xba\x41\x65\xa0\x46\x17\x27", "5bpBZaBGFyc="},
-    {8, "\xce\xec\xd5\x68\x3a\xb7\xb4\x16", "zuzVaDq3tBY="},
-    {8, "\xbe\x33\x9a\xc9\xfd\xcc\x29\xe8", "vjOayf3MKeg="},
     {8, "\x55\x8c\x60\xcc\xc4\x7d\x99\x1f", "VYxgzMR9mR8="},
     {8, "\xee\x21\x88\x2a\x0f\x7e\x76\xd7", "7iGIKg9+dtc="},
-    {9, "\xd5\xab\xd9\xa6\xae\xaa\x33\x9f\x66", "1avZpq6qM59m"},
-    {9, "\x6f\xe8\x06\xcf\xfd\x79\x3a\x4e\xdb", "b+gGz/15Ok7b"},
-    {9, "\x61\x00\x0a\x51\xad\x5b\xf1\xf9\x37", "YQAKUa1b8fk3"},
-    {9, "\x4f\x40\x0b\x79\x10\xa4\x12\x25\x3e", "T0ALeRCkEiU+"},
-    {9, "\xb1\x37\xb3\x41\x5b\xd7\xe8\xa4\xda", "sTezQVvX6KTa"},
-    {9, "\x82\xa5\x22\xd3\x48\xd8\xf7\x62\x7a", "gqUi00jY92J6"},
-    {9, "\xfd\x05\x33\x92\x2c\xd3\x85\x29\xa2", "/QUzkizThSmi"},
-    {9, "\x32\x93\x53\x06\x9c\xbb\x96\xbb\xf3", "MpNTBpy7lrvz"},
     {9, "\xba\x40\x1d\x06\x92\xce\xc2\x8a\x28", "ukAdBpLOwooo"},
     {9, "\xcc\x89\xf5\xeb\x49\x91\xa6\xa6\x88", "zIn160mRpqaI"},
-    {10, "\x6b\xfd\x95\xc5\x4a\xc7\xc2\x39\x45\xdc", "a/2VxUrHwjlF3A=="},
-    {10, "\x34\x50\xab\x78\xaf\x92\x47\x56\x8a\xb6", "NFCreK+SR1aKtg=="},
-    {10, "\x07\x14\x0a\xe8\x49\xca\x3a\x36\x80\xb0", "BxQK6EnKOjaAsA=="},
-    {10, "\xde\x79\x3d\xa7\xab\x22\xa9\xaa\xfc\x05", "3nk9p6siqar8BQ=="},
-    {10, "\x73\x62\x02\x77\x41\x91\xe6\x8b\x3f\x89", "c2ICd0GR5os/iQ=="},
-    {10, "\xf2\x09\xa9\x8b\x7c\x30\x26\x54\xf0\xd3", "8gmpi3wwJlTw0w=="},
-    {10, "\x32\xc8\xcc\xfc\x47\xa3\xac\x20\x37\x39", "MsjM/EejrCA3OQ=="},
-    {10, "\x32\x1b\x2b\x36\x07\x76\x90\xfa\xe0\x04", "MhsrNgd2kPrgBA=="},
     {10, "\x55\x6b\x11\xe4\xc2\x22\xb0\x40\x14\x53", "VWsR5MIisEAUUw=="},
     {10, "\xd3\x1e\xc4\xe5\x06\x60\x37\x51\x10\x48", "0x7E5QZgN1EQSA=="},
-    {11, "\x4c\xde\xee\xb8\x68\x0d\x9c\x66\x3e\xea\x46", "TN7uuGgNnGY+6kY="},
-    {11, "\x36\x79\x11\x5c\xce\xd0\xdf\x3c\xd2\xc9\x45", "NnkRXM7Q3zzSyUU="},
-    {11, "\xa0\x78\xc3\xc0\x79\xaf\xa1\xc3\xef\xd5\xf3", "oHjDwHmvocPv1fM="},
-    {11, "\xdd\x6b\x78\x18\x95\x80\x99\x7a\x02\x41\xe8", "3Wt4GJWAmXoCQeg="},
-    {11, "\x18\xfa\x19\xe0\xce\x3b\x0a\xa1\xec\x2b\x30", "GPoZ4M47CqHsKzA="},
-    {11, "\x74\xf2\x96\x90\x95\xbe\x14\x64\xbf\x10\xd9", "dPKWkJW+FGS/ENk="},
-    {11, "\x7f\xe8\x18\xab\xeb\x28\x86\xf1\x7c\x75\x47", "f+gYq+sohvF8dUc="},
-    {11, "\xa4\xc9\x62\x73\x0e\x89\xe1\x51\x8b\xf0\x96", "pMlicw6J4VGL8JY="},
     {11, "\x98\xae\x09\x8c\x61\x40\xbf\x77\xde\xd9\x0d", "mK4JjGFAv3fe2Q0="},
     {11, "\x86\x39\x06\xa1\xc6\xfc\xcf\x30\x21\xba\xdf", "hjkGocb8zzAhut8="},
 };
