Edit

kc3-lang/kc3/test/buf_parse_test_s8.c

Branch :

  • test/buf_parse_test_s8.c
  • /* c3
     * Copyright 2022,2023 kmx.io <contact@kmx.io>
     *
     * Permission is hereby granted to use this software granted the above
     * copyright notice and this permission paragraph are included in all
     * copies and substantial portions of this software.
     *
     * THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF
     * PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
     * AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
     * THIS SOFTWARE.
     */
    #include "buf_parse_test.h"
    #ifdef C3_TEST_BUF_PARSE_SU
    
    TEST_CASE(buf_parse_s8_binary)
    {
      BUF_PARSE_TEST_S(8, "0b0",   0);
      BUF_PARSE_TEST_S(8, "0b00",  0);
      BUF_PARSE_TEST_S(8, "0b000", 0);
      BUF_PARSE_TEST_S(8, "0b1",   1);
      BUF_PARSE_TEST_S(8, "0b01",  1);
      BUF_PARSE_TEST_S(8, "0b001", 1);
      BUF_PARSE_TEST_S(8, "0b10",  2);
      BUF_PARSE_TEST_S(8, "0b010", 2);
      BUF_PARSE_TEST_S(8, "0b11",  3);
      BUF_PARSE_TEST_S(8, "0b011", 3);
      BUF_PARSE_TEST_S(8, "0b100", 4);
      BUF_PARSE_TEST_S(8, "0b101", 5);
      BUF_PARSE_TEST_S(8, "0b110", 6);
      BUF_PARSE_TEST_S(8, "0b111", 7);
      BUF_PARSE_TEST_S(8, "0b1111110", 126);
      BUF_PARSE_TEST_S(8, "0b1111111", 127);
    }
    TEST_CASE_END(buf_parse_s8_binary)
    
    TEST_CASE(buf_parse_s8_binary_negative)
    {
      BUF_PARSE_TEST_S(8, "-0b0",    0);
      BUF_PARSE_TEST_S(8, "-0b00",   0);
      BUF_PARSE_TEST_S(8, "-0b000",  0);
      BUF_PARSE_TEST_S(8, "-0b1",   -1);
      BUF_PARSE_TEST_S(8, "-0b01",  -1);
      BUF_PARSE_TEST_S(8, "-0b001", -1);
      BUF_PARSE_TEST_S(8, "-0b10",  -2);
      BUF_PARSE_TEST_S(8, "-0b010", -2);
      BUF_PARSE_TEST_S(8, "-0b11",  -3);
      BUF_PARSE_TEST_S(8, "-0b011", -3);
      BUF_PARSE_TEST_S(8, "-0b100", -4);
      BUF_PARSE_TEST_S(8, "-0b101", -5);
      BUF_PARSE_TEST_S(8, "-0b110", -6);
      BUF_PARSE_TEST_S(8, "-0b111", -7);
      BUF_PARSE_TEST_S(8, "-0b1111111", -127);
      BUF_PARSE_TEST_S(8, "-0b10000000", -128);
    }
    TEST_CASE_END(buf_parse_s8_binary_negative)
    
    TEST_CASE(buf_parse_s8_octal)
    {
      BUF_PARSE_TEST_S(8, "0o0",   0);
      BUF_PARSE_TEST_S(8, "0o00",  0);
      BUF_PARSE_TEST_S(8, "0o000", 0);
      BUF_PARSE_TEST_S(8, "0o1",   1);
      BUF_PARSE_TEST_S(8, "0o01",  1);
      BUF_PARSE_TEST_S(8, "0o001", 1);
      BUF_PARSE_TEST_S(8, "0o2",   2);
      BUF_PARSE_TEST_S(8, "0o02",  2);
      BUF_PARSE_TEST_S(8, "0o002", 2);
      BUF_PARSE_TEST_S(8, "0o3",   3);
      BUF_PARSE_TEST_S(8, "0o03",  3);
      BUF_PARSE_TEST_S(8, "0o003", 3);
      BUF_PARSE_TEST_S(8, "0o4",   4);
      BUF_PARSE_TEST_S(8, "0o04",  4);
      BUF_PARSE_TEST_S(8, "0o004", 4);
      BUF_PARSE_TEST_S(8, "0o5",   5);
      BUF_PARSE_TEST_S(8, "0o05",  5);
      BUF_PARSE_TEST_S(8, "0o005", 5);
      BUF_PARSE_TEST_S(8, "0o6",   6);
      BUF_PARSE_TEST_S(8, "0o06",  6);
      BUF_PARSE_TEST_S(8, "0o006", 6);
      BUF_PARSE_TEST_S(8, "0o7",   7);
      BUF_PARSE_TEST_S(8, "0o07",  7);
      BUF_PARSE_TEST_S(8, "0o007", 7);
      BUF_PARSE_TEST_S(8, "0o10",  8);
      BUF_PARSE_TEST_S(8, "0o010", 8);
      BUF_PARSE_TEST_S(8, "0o11",  9);
      BUF_PARSE_TEST_S(8, "0o011", 9);
      BUF_PARSE_TEST_S(8, "0o12",  10);
      BUF_PARSE_TEST_S(8, "0o012", 10);
      BUF_PARSE_TEST_S(8, "0o13",  11);
      BUF_PARSE_TEST_S(8, "0o013", 11);
      BUF_PARSE_TEST_S(8, "0o14",  12);
      BUF_PARSE_TEST_S(8, "0o014", 12);
      BUF_PARSE_TEST_S(8, "0o15",  13);
      BUF_PARSE_TEST_S(8, "0o015", 13);
      BUF_PARSE_TEST_S(8, "0o16",  14);
      BUF_PARSE_TEST_S(8, "0o016", 14);
      BUF_PARSE_TEST_S(8, "0o17",  15);
      BUF_PARSE_TEST_S(8, "0o017", 15);
      BUF_PARSE_TEST_S(8, "0o20",  16);
      BUF_PARSE_TEST_S(8, "0o020", 16);
      BUF_PARSE_TEST_S(8, "0o21",  17);
      BUF_PARSE_TEST_S(8, "0o021", 17);
      BUF_PARSE_TEST_S(8, "0o22",  18);
      BUF_PARSE_TEST_S(8, "0o022", 18);
      BUF_PARSE_TEST_S(8, "0o23",  19);
      BUF_PARSE_TEST_S(8, "0o023", 19);
      BUF_PARSE_TEST_S(8, "0o24",  20);
      BUF_PARSE_TEST_S(8, "0o024", 20);
      BUF_PARSE_TEST_S(8, "0o25",  21);
      BUF_PARSE_TEST_S(8, "0o025", 21);
      BUF_PARSE_TEST_S(8, "0o26",  22);
      BUF_PARSE_TEST_S(8, "0o026", 22);
      BUF_PARSE_TEST_S(8, "0o27",  23);
      BUF_PARSE_TEST_S(8, "0o027", 23);
      BUF_PARSE_TEST_S(8, "0o30",  24);
      BUF_PARSE_TEST_S(8, "0o030", 24);
      BUF_PARSE_TEST_S(8, "0o31",  25);
      BUF_PARSE_TEST_S(8, "0o031", 25);
      BUF_PARSE_TEST_S(8, "0o32",  26);
      BUF_PARSE_TEST_S(8, "0o032", 26);
      BUF_PARSE_TEST_S(8, "0o33",  27);
      BUF_PARSE_TEST_S(8, "0o033", 27);
      BUF_PARSE_TEST_S(8, "0o34",  28);
      BUF_PARSE_TEST_S(8, "0o034", 28);
      BUF_PARSE_TEST_S(8, "0o35",  29);
      BUF_PARSE_TEST_S(8, "0o035", 29);
      BUF_PARSE_TEST_S(8, "0o36",  30);
      BUF_PARSE_TEST_S(8, "0o036", 30);
      BUF_PARSE_TEST_S(8, "0o37",  31);
      BUF_PARSE_TEST_S(8, "0o037", 31);
      BUF_PARSE_TEST_S(8, "0o40",  32);
      BUF_PARSE_TEST_S(8, "0o040", 32);
      BUF_PARSE_TEST_S(8, "0o41",  33);
      BUF_PARSE_TEST_S(8, "0o041", 33);
      BUF_PARSE_TEST_S(8, "0o42",  34);
      BUF_PARSE_TEST_S(8, "0o042", 34);
      BUF_PARSE_TEST_S(8, "0o43",  35);
      BUF_PARSE_TEST_S(8, "0o043", 35);
      BUF_PARSE_TEST_S(8, "0o44",  36);
      BUF_PARSE_TEST_S(8, "0o044", 36);
      BUF_PARSE_TEST_S(8, "0o45",  37);
      BUF_PARSE_TEST_S(8, "0o045", 37);
      BUF_PARSE_TEST_S(8, "0o46",  38);
      BUF_PARSE_TEST_S(8, "0o046", 38);
      BUF_PARSE_TEST_S(8, "0o47",  39);
      BUF_PARSE_TEST_S(8, "0o047", 39);
      BUF_PARSE_TEST_S(8, "0o50",  40);
      BUF_PARSE_TEST_S(8, "0o050", 40);
      BUF_PARSE_TEST_S(8, "0o51",  41);
      BUF_PARSE_TEST_S(8, "0o051", 41);
      BUF_PARSE_TEST_S(8, "0o52",  42);
      BUF_PARSE_TEST_S(8, "0o052", 42);
      BUF_PARSE_TEST_S(8, "0o53",  43);
      BUF_PARSE_TEST_S(8, "0o053", 43);
      BUF_PARSE_TEST_S(8, "0o54",  44);
      BUF_PARSE_TEST_S(8, "0o054", 44);
      BUF_PARSE_TEST_S(8, "0o55",  45);
      BUF_PARSE_TEST_S(8, "0o055", 45);
      BUF_PARSE_TEST_S(8, "0o56",  46);
      BUF_PARSE_TEST_S(8, "0o056", 46);
      BUF_PARSE_TEST_S(8, "0o57",  47);
      BUF_PARSE_TEST_S(8, "0o057", 47);
      BUF_PARSE_TEST_S(8, "0o60",  48);
      BUF_PARSE_TEST_S(8, "0o060", 48);
      BUF_PARSE_TEST_S(8, "0o61",  49);
      BUF_PARSE_TEST_S(8, "0o061", 49);
      BUF_PARSE_TEST_S(8, "0o62",  50);
      BUF_PARSE_TEST_S(8, "0o062", 50);
      BUF_PARSE_TEST_S(8, "0o63",  51);
      BUF_PARSE_TEST_S(8, "0o063", 51);
      BUF_PARSE_TEST_S(8, "0o64",  52);
      BUF_PARSE_TEST_S(8, "0o064", 52);
      BUF_PARSE_TEST_S(8, "0o65",  53);
      BUF_PARSE_TEST_S(8, "0o065", 53);
      BUF_PARSE_TEST_S(8, "0o66",  54);
      BUF_PARSE_TEST_S(8, "0o066", 54);
      BUF_PARSE_TEST_S(8, "0o67",  55);
      BUF_PARSE_TEST_S(8, "0o067", 55);
      BUF_PARSE_TEST_S(8, "0o70",  56);
      BUF_PARSE_TEST_S(8, "0o070", 56);
      BUF_PARSE_TEST_S(8, "0o71",  57);
      BUF_PARSE_TEST_S(8, "0o071", 57);
      BUF_PARSE_TEST_S(8, "0o72",  58);
      BUF_PARSE_TEST_S(8, "0o072", 58);
      BUF_PARSE_TEST_S(8, "0o73",  59);
      BUF_PARSE_TEST_S(8, "0o073", 59);
      BUF_PARSE_TEST_S(8, "0o74",  60);
      BUF_PARSE_TEST_S(8, "0o074", 60);
      BUF_PARSE_TEST_S(8, "0o75",  61);
      BUF_PARSE_TEST_S(8, "0o075", 61);
      BUF_PARSE_TEST_S(8, "0o76",  62);
      BUF_PARSE_TEST_S(8, "0o076", 62);
      BUF_PARSE_TEST_S(8, "0o77",  63);
      BUF_PARSE_TEST_S(8, "0o077", 63);
      BUF_PARSE_TEST_S(8, "0o100", 64);
      BUF_PARSE_TEST_S(8, "0o101", 65);
      BUF_PARSE_TEST_S(8, "0o102", 66);
      BUF_PARSE_TEST_S(8, "0o103", 67);
      BUF_PARSE_TEST_S(8, "0o104", 68);
      BUF_PARSE_TEST_S(8, "0o105", 69);
      BUF_PARSE_TEST_S(8, "0o106", 70);
      BUF_PARSE_TEST_S(8, "0o107", 71);
      BUF_PARSE_TEST_S(8, "0o110", 72);
      BUF_PARSE_TEST_S(8, "0o111", 73);
      BUF_PARSE_TEST_S(8, "0o112", 74);
      BUF_PARSE_TEST_S(8, "0o113", 75);
      BUF_PARSE_TEST_S(8, "0o114", 76);
      BUF_PARSE_TEST_S(8, "0o115", 77);
      BUF_PARSE_TEST_S(8, "0o116", 78);
      BUF_PARSE_TEST_S(8, "0o117", 79);
      BUF_PARSE_TEST_S(8, "0o120", 80);
      BUF_PARSE_TEST_S(8, "0o121", 81);
      BUF_PARSE_TEST_S(8, "0o122", 82);
      BUF_PARSE_TEST_S(8, "0o123", 83);
      BUF_PARSE_TEST_S(8, "0o124", 84);
      BUF_PARSE_TEST_S(8, "0o125", 85);
      BUF_PARSE_TEST_S(8, "0o126", 86);
      BUF_PARSE_TEST_S(8, "0o127", 87);
      BUF_PARSE_TEST_S(8, "0o130", 88);
      BUF_PARSE_TEST_S(8, "0o131", 89);
      BUF_PARSE_TEST_S(8, "0o132", 90);
      BUF_PARSE_TEST_S(8, "0o133", 91);
      BUF_PARSE_TEST_S(8, "0o134", 92);
      BUF_PARSE_TEST_S(8, "0o135", 93);
      BUF_PARSE_TEST_S(8, "0o136", 94);
      BUF_PARSE_TEST_S(8, "0o137", 95);
      BUF_PARSE_TEST_S(8, "0o140", 96);
      BUF_PARSE_TEST_S(8, "0o141", 97);
      BUF_PARSE_TEST_S(8, "0o142", 98);
      BUF_PARSE_TEST_S(8, "0o143", 99);
      BUF_PARSE_TEST_S(8, "0o144", 100);
      BUF_PARSE_TEST_S(8, "0o145", 101);
      BUF_PARSE_TEST_S(8, "0o146", 102);
      BUF_PARSE_TEST_S(8, "0o147", 103);
      BUF_PARSE_TEST_S(8, "0o150", 104);
      BUF_PARSE_TEST_S(8, "0o151", 105);
      BUF_PARSE_TEST_S(8, "0o152", 106);
      BUF_PARSE_TEST_S(8, "0o153", 107);
      BUF_PARSE_TEST_S(8, "0o154", 108);
      BUF_PARSE_TEST_S(8, "0o155", 109);
      BUF_PARSE_TEST_S(8, "0o156", 110);
      BUF_PARSE_TEST_S(8, "0o157", 111);
      BUF_PARSE_TEST_S(8, "0o160", 112);
      BUF_PARSE_TEST_S(8, "0o161", 113);
      BUF_PARSE_TEST_S(8, "0o162", 114);
      BUF_PARSE_TEST_S(8, "0o163", 115);
      BUF_PARSE_TEST_S(8, "0o164", 116);
      BUF_PARSE_TEST_S(8, "0o165", 117);
      BUF_PARSE_TEST_S(8, "0o166", 118);
      BUF_PARSE_TEST_S(8, "0o167", 119);
      BUF_PARSE_TEST_S(8, "0o170", 120);
      BUF_PARSE_TEST_S(8, "0o171", 121);
      BUF_PARSE_TEST_S(8, "0o172", 122);
      BUF_PARSE_TEST_S(8, "0o173", 123);
      BUF_PARSE_TEST_S(8, "0o174", 124);
      BUF_PARSE_TEST_S(8, "0o175", 125);
      BUF_PARSE_TEST_S(8, "0o176", 126);
      BUF_PARSE_TEST_S(8, "0o177", 127);
    }
    TEST_CASE_END(buf_parse_s8_octal)
    
    TEST_CASE(buf_parse_s8_octal_negative)
    {
      BUF_PARSE_TEST_S(8, "-0o0",    0);
      BUF_PARSE_TEST_S(8, "-0o00",   0);
      BUF_PARSE_TEST_S(8, "-0o000",  0);
      BUF_PARSE_TEST_S(8, "-0o1",   -1);
      BUF_PARSE_TEST_S(8, "-0o01",  -1);
      BUF_PARSE_TEST_S(8, "-0o001", -1);
      BUF_PARSE_TEST_S(8, "-0o2",   -2);
      BUF_PARSE_TEST_S(8, "-0o02",  -2);
      BUF_PARSE_TEST_S(8, "-0o002", -2);
      BUF_PARSE_TEST_S(8, "-0o3",   -3);
      BUF_PARSE_TEST_S(8, "-0o03",  -3);
      BUF_PARSE_TEST_S(8, "-0o003", -3);
      BUF_PARSE_TEST_S(8, "-0o4",   -4);
      BUF_PARSE_TEST_S(8, "-0o04",  -4);
      BUF_PARSE_TEST_S(8, "-0o004", -4);
      BUF_PARSE_TEST_S(8, "-0o5",   -5);
      BUF_PARSE_TEST_S(8, "-0o05",  -5);
      BUF_PARSE_TEST_S(8, "-0o005", -5);
      BUF_PARSE_TEST_S(8, "-0o6",   -6);
      BUF_PARSE_TEST_S(8, "-0o06",  -6);
      BUF_PARSE_TEST_S(8, "-0o006", -6);
      BUF_PARSE_TEST_S(8, "-0o7",   -7);
      BUF_PARSE_TEST_S(8, "-0o07",  -7);
      BUF_PARSE_TEST_S(8, "-0o007", -7);
      BUF_PARSE_TEST_S(8, "-0o10",  -8);
      BUF_PARSE_TEST_S(8, "-0o010", -8);
      BUF_PARSE_TEST_S(8, "-0o11",  -9);
      BUF_PARSE_TEST_S(8, "-0o011", -9);
      BUF_PARSE_TEST_S(8, "-0o12",  -10);
      BUF_PARSE_TEST_S(8, "-0o012", -10);
      BUF_PARSE_TEST_S(8, "-0o13",  -11);
      BUF_PARSE_TEST_S(8, "-0o013", -11);
      BUF_PARSE_TEST_S(8, "-0o14",  -12);
      BUF_PARSE_TEST_S(8, "-0o014", -12);
      BUF_PARSE_TEST_S(8, "-0o15",  -13);
      BUF_PARSE_TEST_S(8, "-0o015", -13);
      BUF_PARSE_TEST_S(8, "-0o16",  -14);
      BUF_PARSE_TEST_S(8, "-0o016", -14);
      BUF_PARSE_TEST_S(8, "-0o17",  -15);
      BUF_PARSE_TEST_S(8, "-0o017", -15);
      BUF_PARSE_TEST_S(8, "-0o20",  -16);
      BUF_PARSE_TEST_S(8, "-0o020", -16);
      BUF_PARSE_TEST_S(8, "-0o21",  -17);
      BUF_PARSE_TEST_S(8, "-0o021", -17);
      BUF_PARSE_TEST_S(8, "-0o22",  -18);
      BUF_PARSE_TEST_S(8, "-0o022", -18);
      BUF_PARSE_TEST_S(8, "-0o23",  -19);
      BUF_PARSE_TEST_S(8, "-0o023", -19);
      BUF_PARSE_TEST_S(8, "-0o24",  -20);
      BUF_PARSE_TEST_S(8, "-0o024", -20);
      BUF_PARSE_TEST_S(8, "-0o25",  -21);
      BUF_PARSE_TEST_S(8, "-0o025", -21);
      BUF_PARSE_TEST_S(8, "-0o26",  -22);
      BUF_PARSE_TEST_S(8, "-0o026", -22);
      BUF_PARSE_TEST_S(8, "-0o27",  -23);
      BUF_PARSE_TEST_S(8, "-0o027", -23);
      BUF_PARSE_TEST_S(8, "-0o30",  -24);
      BUF_PARSE_TEST_S(8, "-0o030", -24);
      BUF_PARSE_TEST_S(8, "-0o31",  -25);
      BUF_PARSE_TEST_S(8, "-0o031", -25);
      BUF_PARSE_TEST_S(8, "-0o32",  -26);
      BUF_PARSE_TEST_S(8, "-0o032", -26);
      BUF_PARSE_TEST_S(8, "-0o33",  -27);
      BUF_PARSE_TEST_S(8, "-0o033", -27);
      BUF_PARSE_TEST_S(8, "-0o34",  -28);
      BUF_PARSE_TEST_S(8, "-0o034", -28);
      BUF_PARSE_TEST_S(8, "-0o35",  -29);
      BUF_PARSE_TEST_S(8, "-0o035", -29);
      BUF_PARSE_TEST_S(8, "-0o36",  -30);
      BUF_PARSE_TEST_S(8, "-0o036", -30);
      BUF_PARSE_TEST_S(8, "-0o37",  -31);
      BUF_PARSE_TEST_S(8, "-0o037", -31);
      BUF_PARSE_TEST_S(8, "-0o40",  -32);
      BUF_PARSE_TEST_S(8, "-0o040", -32);
      BUF_PARSE_TEST_S(8, "-0o41",  -33);
      BUF_PARSE_TEST_S(8, "-0o041", -33);
      BUF_PARSE_TEST_S(8, "-0o42",  -34);
      BUF_PARSE_TEST_S(8, "-0o042", -34);
      BUF_PARSE_TEST_S(8, "-0o43",  -35);
      BUF_PARSE_TEST_S(8, "-0o043", -35);
      BUF_PARSE_TEST_S(8, "-0o44",  -36);
      BUF_PARSE_TEST_S(8, "-0o044", -36);
      BUF_PARSE_TEST_S(8, "-0o45",  -37);
      BUF_PARSE_TEST_S(8, "-0o045", -37);
      BUF_PARSE_TEST_S(8, "-0o46",  -38);
      BUF_PARSE_TEST_S(8, "-0o046", -38);
      BUF_PARSE_TEST_S(8, "-0o47",  -39);
      BUF_PARSE_TEST_S(8, "-0o047", -39);
      BUF_PARSE_TEST_S(8, "-0o50",  -40);
      BUF_PARSE_TEST_S(8, "-0o050", -40);
      BUF_PARSE_TEST_S(8, "-0o51",  -41);
      BUF_PARSE_TEST_S(8, "-0o051", -41);
      BUF_PARSE_TEST_S(8, "-0o52",  -42);
      BUF_PARSE_TEST_S(8, "-0o052", -42);
      BUF_PARSE_TEST_S(8, "-0o53",  -43);
      BUF_PARSE_TEST_S(8, "-0o053", -43);
      BUF_PARSE_TEST_S(8, "-0o54",  -44);
      BUF_PARSE_TEST_S(8, "-0o054", -44);
      BUF_PARSE_TEST_S(8, "-0o55",  -45);
      BUF_PARSE_TEST_S(8, "-0o055", -45);
      BUF_PARSE_TEST_S(8, "-0o56",  -46);
      BUF_PARSE_TEST_S(8, "-0o056", -46);
      BUF_PARSE_TEST_S(8, "-0o57",  -47);
      BUF_PARSE_TEST_S(8, "-0o057", -47);
      BUF_PARSE_TEST_S(8, "-0o60",  -48);
      BUF_PARSE_TEST_S(8, "-0o060", -48);
      BUF_PARSE_TEST_S(8, "-0o61",  -49);
      BUF_PARSE_TEST_S(8, "-0o061", -49);
      BUF_PARSE_TEST_S(8, "-0o62",  -50);
      BUF_PARSE_TEST_S(8, "-0o062", -50);
      BUF_PARSE_TEST_S(8, "-0o63",  -51);
      BUF_PARSE_TEST_S(8, "-0o063", -51);
      BUF_PARSE_TEST_S(8, "-0o64",  -52);
      BUF_PARSE_TEST_S(8, "-0o064", -52);
      BUF_PARSE_TEST_S(8, "-0o65",  -53);
      BUF_PARSE_TEST_S(8, "-0o065", -53);
      BUF_PARSE_TEST_S(8, "-0o66",  -54);
      BUF_PARSE_TEST_S(8, "-0o066", -54);
      BUF_PARSE_TEST_S(8, "-0o67",  -55);
      BUF_PARSE_TEST_S(8, "-0o067", -55);
      BUF_PARSE_TEST_S(8, "-0o70",  -56);
      BUF_PARSE_TEST_S(8, "-0o070", -56);
      BUF_PARSE_TEST_S(8, "-0o71",  -57);
      BUF_PARSE_TEST_S(8, "-0o071", -57);
      BUF_PARSE_TEST_S(8, "-0o72",  -58);
      BUF_PARSE_TEST_S(8, "-0o072", -58);
      BUF_PARSE_TEST_S(8, "-0o73",  -59);
      BUF_PARSE_TEST_S(8, "-0o073", -59);
      BUF_PARSE_TEST_S(8, "-0o74",  -60);
      BUF_PARSE_TEST_S(8, "-0o074", -60);
      BUF_PARSE_TEST_S(8, "-0o75",  -61);
      BUF_PARSE_TEST_S(8, "-0o075", -61);
      BUF_PARSE_TEST_S(8, "-0o76",  -62);
      BUF_PARSE_TEST_S(8, "-0o076", -62);
      BUF_PARSE_TEST_S(8, "-0o77",  -63);
      BUF_PARSE_TEST_S(8, "-0o077", -63);
      BUF_PARSE_TEST_S(8, "-0o100", -64);
      BUF_PARSE_TEST_S(8, "-0o101", -65);
      BUF_PARSE_TEST_S(8, "-0o102", -66);
      BUF_PARSE_TEST_S(8, "-0o103", -67);
      BUF_PARSE_TEST_S(8, "-0o104", -68);
      BUF_PARSE_TEST_S(8, "-0o105", -69);
      BUF_PARSE_TEST_S(8, "-0o106", -70);
      BUF_PARSE_TEST_S(8, "-0o107", -71);
      BUF_PARSE_TEST_S(8, "-0o110", -72);
      BUF_PARSE_TEST_S(8, "-0o111", -73);
      BUF_PARSE_TEST_S(8, "-0o112", -74);
      BUF_PARSE_TEST_S(8, "-0o113", -75);
      BUF_PARSE_TEST_S(8, "-0o114", -76);
      BUF_PARSE_TEST_S(8, "-0o115", -77);
      BUF_PARSE_TEST_S(8, "-0o116", -78);
      BUF_PARSE_TEST_S(8, "-0o117", -79);
      BUF_PARSE_TEST_S(8, "-0o120", -80);
      BUF_PARSE_TEST_S(8, "-0o121", -81);
      BUF_PARSE_TEST_S(8, "-0o122", -82);
      BUF_PARSE_TEST_S(8, "-0o123", -83);
      BUF_PARSE_TEST_S(8, "-0o124", -84);
      BUF_PARSE_TEST_S(8, "-0o125", -85);
      BUF_PARSE_TEST_S(8, "-0o126", -86);
      BUF_PARSE_TEST_S(8, "-0o127", -87);
      BUF_PARSE_TEST_S(8, "-0o130", -88);
      BUF_PARSE_TEST_S(8, "-0o131", -89);
      BUF_PARSE_TEST_S(8, "-0o132", -90);
      BUF_PARSE_TEST_S(8, "-0o133", -91);
      BUF_PARSE_TEST_S(8, "-0o134", -92);
      BUF_PARSE_TEST_S(8, "-0o135", -93);
      BUF_PARSE_TEST_S(8, "-0o136", -94);
      BUF_PARSE_TEST_S(8, "-0o137", -95);
      BUF_PARSE_TEST_S(8, "-0o140", -96);
      BUF_PARSE_TEST_S(8, "-0o141", -97);
      BUF_PARSE_TEST_S(8, "-0o142", -98);
      BUF_PARSE_TEST_S(8, "-0o143", -99);
      BUF_PARSE_TEST_S(8, "-0o144", -100);
      BUF_PARSE_TEST_S(8, "-0o145", -101);
      BUF_PARSE_TEST_S(8, "-0o146", -102);
      BUF_PARSE_TEST_S(8, "-0o147", -103);
      BUF_PARSE_TEST_S(8, "-0o150", -104);
      BUF_PARSE_TEST_S(8, "-0o151", -105);
      BUF_PARSE_TEST_S(8, "-0o152", -106);
      BUF_PARSE_TEST_S(8, "-0o153", -107);
      BUF_PARSE_TEST_S(8, "-0o154", -108);
      BUF_PARSE_TEST_S(8, "-0o155", -109);
      BUF_PARSE_TEST_S(8, "-0o156", -110);
      BUF_PARSE_TEST_S(8, "-0o157", -111);
      BUF_PARSE_TEST_S(8, "-0o160", -112);
      BUF_PARSE_TEST_S(8, "-0o161", -113);
      BUF_PARSE_TEST_S(8, "-0o162", -114);
      BUF_PARSE_TEST_S(8, "-0o163", -115);
      BUF_PARSE_TEST_S(8, "-0o164", -116);
      BUF_PARSE_TEST_S(8, "-0o165", -117);
      BUF_PARSE_TEST_S(8, "-0o166", -118);
      BUF_PARSE_TEST_S(8, "-0o167", -119);
      BUF_PARSE_TEST_S(8, "-0o170", -120);
      BUF_PARSE_TEST_S(8, "-0o171", -121);
      BUF_PARSE_TEST_S(8, "-0o172", -122);
      BUF_PARSE_TEST_S(8, "-0o173", -123);
      BUF_PARSE_TEST_S(8, "-0o174", -124);
      BUF_PARSE_TEST_S(8, "-0o175", -125);
      BUF_PARSE_TEST_S(8, "-0o176", -126);
      BUF_PARSE_TEST_S(8, "-0o177", -127);
      BUF_PARSE_TEST_S(8, "-0o200", -128);
    }
    TEST_CASE_END(buf_parse_s8_octal_negative)
    
    TEST_CASE(buf_parse_s8_hexadecimal)
    {
      BUF_PARSE_TEST_S(8, "0x0",   0);
      BUF_PARSE_TEST_S(8, "0x00",  0);
      BUF_PARSE_TEST_S(8, "0x000", 0);
      BUF_PARSE_TEST_S(8, "0x1",   1);
      BUF_PARSE_TEST_S(8, "0x01",  1);
      BUF_PARSE_TEST_S(8, "0x001", 1);
      BUF_PARSE_TEST_S(8, "0x2",   2);
      BUF_PARSE_TEST_S(8, "0x02",  2);
      BUF_PARSE_TEST_S(8, "0x002", 2);
      BUF_PARSE_TEST_S(8, "0x3",   3);
      BUF_PARSE_TEST_S(8, "0x03",  3);
      BUF_PARSE_TEST_S(8, "0x003", 3);
      BUF_PARSE_TEST_S(8, "0x4",   4);
      BUF_PARSE_TEST_S(8, "0x04",  4);
      BUF_PARSE_TEST_S(8, "0x004", 4);
      BUF_PARSE_TEST_S(8, "0x5",   5);
      BUF_PARSE_TEST_S(8, "0x05",  5);
      BUF_PARSE_TEST_S(8, "0x005", 5);
      BUF_PARSE_TEST_S(8, "0x6",   6);
      BUF_PARSE_TEST_S(8, "0x06",  6);
      BUF_PARSE_TEST_S(8, "0x006", 6);
      BUF_PARSE_TEST_S(8, "0x7",   7);
      BUF_PARSE_TEST_S(8, "0x07",  7);
      BUF_PARSE_TEST_S(8, "0x007", 7);
      BUF_PARSE_TEST_S(8, "0x8",   8);
      BUF_PARSE_TEST_S(8, "0x08",  8);
      BUF_PARSE_TEST_S(8, "0x008", 8);
      BUF_PARSE_TEST_S(8, "0x9",   9);
      BUF_PARSE_TEST_S(8, "0x09",  9);
      BUF_PARSE_TEST_S(8, "0x009", 9);
      BUF_PARSE_TEST_S(8, "0xa",   10);
      BUF_PARSE_TEST_S(8, "0x0a",  10);
      BUF_PARSE_TEST_S(8, "0x00a", 10);
      BUF_PARSE_TEST_S(8, "0xA",   10);
      BUF_PARSE_TEST_S(8, "0x0A",  10);
      BUF_PARSE_TEST_S(8, "0x00A", 10);
      BUF_PARSE_TEST_S(8, "0xb",   11);
      BUF_PARSE_TEST_S(8, "0x0b",  11);
      BUF_PARSE_TEST_S(8, "0x00b", 11);
      BUF_PARSE_TEST_S(8, "0xB",   11);
      BUF_PARSE_TEST_S(8, "0x0B",  11);
      BUF_PARSE_TEST_S(8, "0x00B", 11);
      BUF_PARSE_TEST_S(8, "0xc",   12);
      BUF_PARSE_TEST_S(8, "0x0c",  12);
      BUF_PARSE_TEST_S(8, "0x00c", 12);
      BUF_PARSE_TEST_S(8, "0xC",   12);
      BUF_PARSE_TEST_S(8, "0x0C",  12);
      BUF_PARSE_TEST_S(8, "0x00C", 12);
      BUF_PARSE_TEST_S(8, "0xd",   13);
      BUF_PARSE_TEST_S(8, "0x0d",  13);
      BUF_PARSE_TEST_S(8, "0x00d", 13);
      BUF_PARSE_TEST_S(8, "0xD",   13);
      BUF_PARSE_TEST_S(8, "0x0D",  13);
      BUF_PARSE_TEST_S(8, "0x00D", 13);
      BUF_PARSE_TEST_S(8, "0xe",   14);
      BUF_PARSE_TEST_S(8, "0x0e",  14);
      BUF_PARSE_TEST_S(8, "0x00e", 14);
      BUF_PARSE_TEST_S(8, "0xE",   14);
      BUF_PARSE_TEST_S(8, "0x0E",  14);
      BUF_PARSE_TEST_S(8, "0x00E", 14);
      BUF_PARSE_TEST_S(8, "0xf",   15);
      BUF_PARSE_TEST_S(8, "0x0f",  15);
      BUF_PARSE_TEST_S(8, "0x00f", 15);
      BUF_PARSE_TEST_S(8, "0xF",   15);
      BUF_PARSE_TEST_S(8, "0x0F",  15);
      BUF_PARSE_TEST_S(8, "0x00F", 15);
      BUF_PARSE_TEST_S(8, "0x10",  16);
      BUF_PARSE_TEST_S(8, "0x010", 16);
      BUF_PARSE_TEST_S(8, "0x11",  17);
      BUF_PARSE_TEST_S(8, "0x011", 17);
      BUF_PARSE_TEST_S(8, "0x12",  18);
      BUF_PARSE_TEST_S(8, "0x012", 18);
      BUF_PARSE_TEST_S(8, "0x13",  19);
      BUF_PARSE_TEST_S(8, "0x013", 19);
      BUF_PARSE_TEST_S(8, "0x14",  20);
      BUF_PARSE_TEST_S(8, "0x014", 20);
      BUF_PARSE_TEST_S(8, "0x15",  21);
      BUF_PARSE_TEST_S(8, "0x015", 21);
      BUF_PARSE_TEST_S(8, "0x16",  22);
      BUF_PARSE_TEST_S(8, "0x016", 22);
      BUF_PARSE_TEST_S(8, "0x17",  23);
      BUF_PARSE_TEST_S(8, "0x017", 23);
      BUF_PARSE_TEST_S(8, "0x18",  24);
      BUF_PARSE_TEST_S(8, "0x018", 24);
      BUF_PARSE_TEST_S(8, "0x19",  25);
      BUF_PARSE_TEST_S(8, "0x019", 25);
      BUF_PARSE_TEST_S(8, "0x1a",  26);
      BUF_PARSE_TEST_S(8, "0x01a", 26);
      BUF_PARSE_TEST_S(8, "0x1A",  26);
      BUF_PARSE_TEST_S(8, "0x01A", 26);
      BUF_PARSE_TEST_S(8, "0x1b",  27);
      BUF_PARSE_TEST_S(8, "0x01b", 27);
      BUF_PARSE_TEST_S(8, "0x1B",  27);
      BUF_PARSE_TEST_S(8, "0x01B", 27);
      BUF_PARSE_TEST_S(8, "0x1c",  28);
      BUF_PARSE_TEST_S(8, "0x01c", 28);
      BUF_PARSE_TEST_S(8, "0x1C",  28);
      BUF_PARSE_TEST_S(8, "0x01C", 28);
      BUF_PARSE_TEST_S(8, "0x1d",  29);
      BUF_PARSE_TEST_S(8, "0x01d", 29);
      BUF_PARSE_TEST_S(8, "0x1D",  29);
      BUF_PARSE_TEST_S(8, "0x01D", 29);
      BUF_PARSE_TEST_S(8, "0x1e",  30);
      BUF_PARSE_TEST_S(8, "0x01e", 30);
      BUF_PARSE_TEST_S(8, "0x1E",  30);
      BUF_PARSE_TEST_S(8, "0x01E", 30);
      BUF_PARSE_TEST_S(8, "0x1f",  31);
      BUF_PARSE_TEST_S(8, "0x01f", 31);
      BUF_PARSE_TEST_S(8, "0x1F",  31);
      BUF_PARSE_TEST_S(8, "0x01F", 31);
      BUF_PARSE_TEST_S(8, "0x20",  32);
      BUF_PARSE_TEST_S(8, "0x020", 32);
      BUF_PARSE_TEST_S(8, "0x21",  33);
      BUF_PARSE_TEST_S(8, "0x021", 33);
      BUF_PARSE_TEST_S(8, "0x22",  34);
      BUF_PARSE_TEST_S(8, "0x022", 34);
      BUF_PARSE_TEST_S(8, "0x23",  35);
      BUF_PARSE_TEST_S(8, "0x023", 35);
      BUF_PARSE_TEST_S(8, "0x24",  36);
      BUF_PARSE_TEST_S(8, "0x024", 36);
      BUF_PARSE_TEST_S(8, "0x25",  37);
      BUF_PARSE_TEST_S(8, "0x025", 37);
      BUF_PARSE_TEST_S(8, "0x26",  38);
      BUF_PARSE_TEST_S(8, "0x026", 38);
      BUF_PARSE_TEST_S(8, "0x27",  39);
      BUF_PARSE_TEST_S(8, "0x027", 39);
      BUF_PARSE_TEST_S(8, "0x28",  40);
      BUF_PARSE_TEST_S(8, "0x028", 40);
      BUF_PARSE_TEST_S(8, "0x29",  41);
      BUF_PARSE_TEST_S(8, "0x029", 41);
      BUF_PARSE_TEST_S(8, "0x2a",  42);
      BUF_PARSE_TEST_S(8, "0x02a", 42);
      BUF_PARSE_TEST_S(8, "0x2A",  42);
      BUF_PARSE_TEST_S(8, "0x02A", 42);
      BUF_PARSE_TEST_S(8, "0x2b",  43);
      BUF_PARSE_TEST_S(8, "0x02b", 43);
      BUF_PARSE_TEST_S(8, "0x2B",  43);
      BUF_PARSE_TEST_S(8, "0x02B", 43);
      BUF_PARSE_TEST_S(8, "0x2c",  44);
      BUF_PARSE_TEST_S(8, "0x02c", 44);
      BUF_PARSE_TEST_S(8, "0x2C",  44);
      BUF_PARSE_TEST_S(8, "0x02C", 44);
      BUF_PARSE_TEST_S(8, "0x2d",  45);
      BUF_PARSE_TEST_S(8, "0x02d", 45);
      BUF_PARSE_TEST_S(8, "0x2D",  45);
      BUF_PARSE_TEST_S(8, "0x02D", 45);
      BUF_PARSE_TEST_S(8, "0x2e",  46);
      BUF_PARSE_TEST_S(8, "0x02e", 46);
      BUF_PARSE_TEST_S(8, "0x2E",  46);
      BUF_PARSE_TEST_S(8, "0x02E", 46);
      BUF_PARSE_TEST_S(8, "0x2f",  47);
      BUF_PARSE_TEST_S(8, "0x02f", 47);
      BUF_PARSE_TEST_S(8, "0x2F",  47);
      BUF_PARSE_TEST_S(8, "0x02F", 47);
      BUF_PARSE_TEST_S(8, "0x30",  48);
      BUF_PARSE_TEST_S(8, "0x030", 48);
      BUF_PARSE_TEST_S(8, "0x31",  49);
      BUF_PARSE_TEST_S(8, "0x031", 49);
      BUF_PARSE_TEST_S(8, "0x32",  50);
      BUF_PARSE_TEST_S(8, "0x032", 50);
      BUF_PARSE_TEST_S(8, "0x33",  51);
      BUF_PARSE_TEST_S(8, "0x033", 51);
      BUF_PARSE_TEST_S(8, "0x34",  52);
      BUF_PARSE_TEST_S(8, "0x034", 52);
      BUF_PARSE_TEST_S(8, "0x35",  53);
      BUF_PARSE_TEST_S(8, "0x035", 53);
      BUF_PARSE_TEST_S(8, "0x36",  54);
      BUF_PARSE_TEST_S(8, "0x036", 54);
      BUF_PARSE_TEST_S(8, "0x37",  55);
      BUF_PARSE_TEST_S(8, "0x037", 55);
      BUF_PARSE_TEST_S(8, "0x38",  56);
      BUF_PARSE_TEST_S(8, "0x038", 56);
      BUF_PARSE_TEST_S(8, "0x39",  57);
      BUF_PARSE_TEST_S(8, "0x039", 57);
      BUF_PARSE_TEST_S(8, "0x3a",  58);
      BUF_PARSE_TEST_S(8, "0x03a", 58);
      BUF_PARSE_TEST_S(8, "0x3A",  58);
      BUF_PARSE_TEST_S(8, "0x03A", 58);
      BUF_PARSE_TEST_S(8, "0x3b",  59);
      BUF_PARSE_TEST_S(8, "0x03b", 59);
      BUF_PARSE_TEST_S(8, "0x3B",  59);
      BUF_PARSE_TEST_S(8, "0x03B", 59);
      BUF_PARSE_TEST_S(8, "0x3c",  60);
      BUF_PARSE_TEST_S(8, "0x03c", 60);
      BUF_PARSE_TEST_S(8, "0x3C",  60);
      BUF_PARSE_TEST_S(8, "0x03C", 60);
      BUF_PARSE_TEST_S(8, "0x3d",  61);
      BUF_PARSE_TEST_S(8, "0x03d", 61);
      BUF_PARSE_TEST_S(8, "0x3D",  61);
      BUF_PARSE_TEST_S(8, "0x03D", 61);
      BUF_PARSE_TEST_S(8, "0x3e",  62);
      BUF_PARSE_TEST_S(8, "0x03e", 62);
      BUF_PARSE_TEST_S(8, "0x3E",  62);
      BUF_PARSE_TEST_S(8, "0x03E", 62);
      BUF_PARSE_TEST_S(8, "0x3f",  63);
      BUF_PARSE_TEST_S(8, "0x03f", 63);
      BUF_PARSE_TEST_S(8, "0x3F",  63);
      BUF_PARSE_TEST_S(8, "0x03F", 63);
      BUF_PARSE_TEST_S(8, "0x40",  64);
      BUF_PARSE_TEST_S(8, "0x040", 64);
      BUF_PARSE_TEST_S(8, "0x41",  65);
      BUF_PARSE_TEST_S(8, "0x041", 65);
      BUF_PARSE_TEST_S(8, "0x42",  66);
      BUF_PARSE_TEST_S(8, "0x042", 66);
      BUF_PARSE_TEST_S(8, "0x43",  67);
      BUF_PARSE_TEST_S(8, "0x043", 67);
      BUF_PARSE_TEST_S(8, "0x44",  68);
      BUF_PARSE_TEST_S(8, "0x044", 68);
      BUF_PARSE_TEST_S(8, "0x45",  69);
      BUF_PARSE_TEST_S(8, "0x045", 69);
      BUF_PARSE_TEST_S(8, "0x46",  70);
      BUF_PARSE_TEST_S(8, "0x046", 70);
      BUF_PARSE_TEST_S(8, "0x47",  71);
      BUF_PARSE_TEST_S(8, "0x047", 71);
      BUF_PARSE_TEST_S(8, "0x48",  72);
      BUF_PARSE_TEST_S(8, "0x048", 72);
      BUF_PARSE_TEST_S(8, "0x49",  73);
      BUF_PARSE_TEST_S(8, "0x049", 73);
      BUF_PARSE_TEST_S(8, "0x4a",  74);
      BUF_PARSE_TEST_S(8, "0x04a", 74);
      BUF_PARSE_TEST_S(8, "0x4A",  74);
      BUF_PARSE_TEST_S(8, "0x04A", 74);
      BUF_PARSE_TEST_S(8, "0x4b",  75);
      BUF_PARSE_TEST_S(8, "0x04b", 75);
      BUF_PARSE_TEST_S(8, "0x4B",  75);
      BUF_PARSE_TEST_S(8, "0x04B", 75);
      BUF_PARSE_TEST_S(8, "0x4c",  76);
      BUF_PARSE_TEST_S(8, "0x04c", 76);
      BUF_PARSE_TEST_S(8, "0x4C",  76);
      BUF_PARSE_TEST_S(8, "0x04C", 76);
      BUF_PARSE_TEST_S(8, "0x4d",  77);
      BUF_PARSE_TEST_S(8, "0x04d", 77);
      BUF_PARSE_TEST_S(8, "0x4D",  77);
      BUF_PARSE_TEST_S(8, "0x04D", 77);
      BUF_PARSE_TEST_S(8, "0x4e",  78);
      BUF_PARSE_TEST_S(8, "0x04e", 78);
      BUF_PARSE_TEST_S(8, "0x4E",  78);
      BUF_PARSE_TEST_S(8, "0x04E", 78);
      BUF_PARSE_TEST_S(8, "0x4f",  79);
      BUF_PARSE_TEST_S(8, "0x04f", 79);
      BUF_PARSE_TEST_S(8, "0x4F",  79);
      BUF_PARSE_TEST_S(8, "0x04F", 79);
      BUF_PARSE_TEST_S(8, "0x50",  80);
      BUF_PARSE_TEST_S(8, "0x050", 80);
      BUF_PARSE_TEST_S(8, "0x51",  81);
      BUF_PARSE_TEST_S(8, "0x051", 81);
      BUF_PARSE_TEST_S(8, "0x52",  82);
      BUF_PARSE_TEST_S(8, "0x052", 82);
      BUF_PARSE_TEST_S(8, "0x53",  83);
      BUF_PARSE_TEST_S(8, "0x053", 83);
      BUF_PARSE_TEST_S(8, "0x54",  84);
      BUF_PARSE_TEST_S(8, "0x054", 84);
      BUF_PARSE_TEST_S(8, "0x55",  85);
      BUF_PARSE_TEST_S(8, "0x055", 85);
      BUF_PARSE_TEST_S(8, "0x56",  86);
      BUF_PARSE_TEST_S(8, "0x056", 86);
      BUF_PARSE_TEST_S(8, "0x57",  87);
      BUF_PARSE_TEST_S(8, "0x057", 87);
      BUF_PARSE_TEST_S(8, "0x58",  88);
      BUF_PARSE_TEST_S(8, "0x058", 88);
      BUF_PARSE_TEST_S(8, "0x59",  89);
      BUF_PARSE_TEST_S(8, "0x059", 89);
      BUF_PARSE_TEST_S(8, "0x5a",  90);
      BUF_PARSE_TEST_S(8, "0x05a", 90);
      BUF_PARSE_TEST_S(8, "0x5A",  90);
      BUF_PARSE_TEST_S(8, "0x05A", 90);
      BUF_PARSE_TEST_S(8, "0x5b",  91);
      BUF_PARSE_TEST_S(8, "0x05b", 91);
      BUF_PARSE_TEST_S(8, "0x5B",  91);
      BUF_PARSE_TEST_S(8, "0x05B", 91);
      BUF_PARSE_TEST_S(8, "0x5c",  92);
      BUF_PARSE_TEST_S(8, "0x05c", 92);
      BUF_PARSE_TEST_S(8, "0x5C",  92);
      BUF_PARSE_TEST_S(8, "0x05C", 92);
      BUF_PARSE_TEST_S(8, "0x5d",  93);
      BUF_PARSE_TEST_S(8, "0x05d", 93);
      BUF_PARSE_TEST_S(8, "0x5D",  93);
      BUF_PARSE_TEST_S(8, "0x05D", 93);
      BUF_PARSE_TEST_S(8, "0x5e",  94);
      BUF_PARSE_TEST_S(8, "0x05e", 94);
      BUF_PARSE_TEST_S(8, "0x5E",  94);
      BUF_PARSE_TEST_S(8, "0x05E", 94);
      BUF_PARSE_TEST_S(8, "0x5f",  95);
      BUF_PARSE_TEST_S(8, "0x05f", 95);
      BUF_PARSE_TEST_S(8, "0x5F",  95);
      BUF_PARSE_TEST_S(8, "0x05F", 95);
      BUF_PARSE_TEST_S(8, "0x60",  96);
      BUF_PARSE_TEST_S(8, "0x060", 96);
      BUF_PARSE_TEST_S(8, "0x61",  97);
      BUF_PARSE_TEST_S(8, "0x061", 97);
      BUF_PARSE_TEST_S(8, "0x62",  98);
      BUF_PARSE_TEST_S(8, "0x062", 98);
      BUF_PARSE_TEST_S(8, "0x63",  99);
      BUF_PARSE_TEST_S(8, "0x063", 99);
      BUF_PARSE_TEST_S(8, "0x64",  100);
      BUF_PARSE_TEST_S(8, "0x064", 100);
      BUF_PARSE_TEST_S(8, "0x65",  101);
      BUF_PARSE_TEST_S(8, "0x065", 101);
      BUF_PARSE_TEST_S(8, "0x66",  102);
      BUF_PARSE_TEST_S(8, "0x066", 102);
      BUF_PARSE_TEST_S(8, "0x67",  103);
      BUF_PARSE_TEST_S(8, "0x067", 103);
      BUF_PARSE_TEST_S(8, "0x68",  104);
      BUF_PARSE_TEST_S(8, "0x068", 104);
      BUF_PARSE_TEST_S(8, "0x69",  105);
      BUF_PARSE_TEST_S(8, "0x069", 105);
      BUF_PARSE_TEST_S(8, "0x6a",  106);
      BUF_PARSE_TEST_S(8, "0x06a", 106);
      BUF_PARSE_TEST_S(8, "0x6A",  106);
      BUF_PARSE_TEST_S(8, "0x06A", 106);
      BUF_PARSE_TEST_S(8, "0x6b",  107);
      BUF_PARSE_TEST_S(8, "0x06b", 107);
      BUF_PARSE_TEST_S(8, "0x6B",  107);
      BUF_PARSE_TEST_S(8, "0x06B", 107);
      BUF_PARSE_TEST_S(8, "0x6c",  108);
      BUF_PARSE_TEST_S(8, "0x06c", 108);
      BUF_PARSE_TEST_S(8, "0x6C",  108);
      BUF_PARSE_TEST_S(8, "0x06C", 108);
      BUF_PARSE_TEST_S(8, "0x6d",  109);
      BUF_PARSE_TEST_S(8, "0x06d", 109);
      BUF_PARSE_TEST_S(8, "0x6D",  109);
      BUF_PARSE_TEST_S(8, "0x06D", 109);
      BUF_PARSE_TEST_S(8, "0x6e",  110);
      BUF_PARSE_TEST_S(8, "0x06e", 110);
      BUF_PARSE_TEST_S(8, "0x6E",  110);
      BUF_PARSE_TEST_S(8, "0x06E", 110);
      BUF_PARSE_TEST_S(8, "0x6f",  111);
      BUF_PARSE_TEST_S(8, "0x06f", 111);
      BUF_PARSE_TEST_S(8, "0x6F",  111);
      BUF_PARSE_TEST_S(8, "0x06F", 111);
      BUF_PARSE_TEST_S(8, "0x70",  112);
      BUF_PARSE_TEST_S(8, "0x070", 112);
      BUF_PARSE_TEST_S(8, "0x71",  113);
      BUF_PARSE_TEST_S(8, "0x071", 113);
      BUF_PARSE_TEST_S(8, "0x72",  114);
      BUF_PARSE_TEST_S(8, "0x072", 114);
      BUF_PARSE_TEST_S(8, "0x73",  115);
      BUF_PARSE_TEST_S(8, "0x073", 115);
      BUF_PARSE_TEST_S(8, "0x74",  116);
      BUF_PARSE_TEST_S(8, "0x074", 116);
      BUF_PARSE_TEST_S(8, "0x75",  117);
      BUF_PARSE_TEST_S(8, "0x075", 117);
      BUF_PARSE_TEST_S(8, "0x76",  118);
      BUF_PARSE_TEST_S(8, "0x076", 118);
      BUF_PARSE_TEST_S(8, "0x77",  119);
      BUF_PARSE_TEST_S(8, "0x077", 119);
      BUF_PARSE_TEST_S(8, "0x78",  120);
      BUF_PARSE_TEST_S(8, "0x078", 120);
      BUF_PARSE_TEST_S(8, "0x79",  121);
      BUF_PARSE_TEST_S(8, "0x079", 121);
      BUF_PARSE_TEST_S(8, "0x7a",  122);
      BUF_PARSE_TEST_S(8, "0x07a", 122);
      BUF_PARSE_TEST_S(8, "0x7A",  122);
      BUF_PARSE_TEST_S(8, "0x07A", 122);
      BUF_PARSE_TEST_S(8, "0x7b",  123);
      BUF_PARSE_TEST_S(8, "0x07b", 123);
      BUF_PARSE_TEST_S(8, "0x7B",  123);
      BUF_PARSE_TEST_S(8, "0x07B", 123);
      BUF_PARSE_TEST_S(8, "0x7c",  124);
      BUF_PARSE_TEST_S(8, "0x07c", 124);
      BUF_PARSE_TEST_S(8, "0x7C",  124);
      BUF_PARSE_TEST_S(8, "0x07C", 124);
      BUF_PARSE_TEST_S(8, "0x7d",  125);
      BUF_PARSE_TEST_S(8, "0x07d", 125);
      BUF_PARSE_TEST_S(8, "0x7D",  125);
      BUF_PARSE_TEST_S(8, "0x07D", 125);
      BUF_PARSE_TEST_S(8, "0x7e",  126);
      BUF_PARSE_TEST_S(8, "0x07e", 126);
      BUF_PARSE_TEST_S(8, "0x7E",  126);
      BUF_PARSE_TEST_S(8, "0x07E", 126);
      BUF_PARSE_TEST_S(8, "0x7f",  127);
      BUF_PARSE_TEST_S(8, "0x07f", 127);
      BUF_PARSE_TEST_S(8, "0x7F",  127);
      BUF_PARSE_TEST_S(8, "0x07F", 127);
    }
    TEST_CASE_END(buf_parse_s8_hexadecimal)
    
    TEST_CASE(buf_parse_s8_hexadecimal_negative)
    {
      BUF_PARSE_TEST_S(8, "-0x0",    0);
      BUF_PARSE_TEST_S(8, "-0x00",   0);
      BUF_PARSE_TEST_S(8, "-0x000",  0);
      BUF_PARSE_TEST_S(8, "-0x1",   -1);
      BUF_PARSE_TEST_S(8, "-0x01",  -1);
      BUF_PARSE_TEST_S(8, "-0x001", -1);
      BUF_PARSE_TEST_S(8, "-0x2",   -2);
      BUF_PARSE_TEST_S(8, "-0x02",  -2);
      BUF_PARSE_TEST_S(8, "-0x002", -2);
      BUF_PARSE_TEST_S(8, "-0x3",   -3);
      BUF_PARSE_TEST_S(8, "-0x03",  -3);
      BUF_PARSE_TEST_S(8, "-0x003", -3);
      BUF_PARSE_TEST_S(8, "-0x4",   -4);
      BUF_PARSE_TEST_S(8, "-0x04",  -4);
      BUF_PARSE_TEST_S(8, "-0x004", -4);
      BUF_PARSE_TEST_S(8, "-0x5",   -5);
      BUF_PARSE_TEST_S(8, "-0x05",  -5);
      BUF_PARSE_TEST_S(8, "-0x005", -5);
      BUF_PARSE_TEST_S(8, "-0x6",   -6);
      BUF_PARSE_TEST_S(8, "-0x06",  -6);
      BUF_PARSE_TEST_S(8, "-0x006", -6);
      BUF_PARSE_TEST_S(8, "-0x7",   -7);
      BUF_PARSE_TEST_S(8, "-0x07",  -7);
      BUF_PARSE_TEST_S(8, "-0x007", -7);
      BUF_PARSE_TEST_S(8, "-0x8",   -8);
      BUF_PARSE_TEST_S(8, "-0x08",  -8);
      BUF_PARSE_TEST_S(8, "-0x008", -8);
      BUF_PARSE_TEST_S(8, "-0x9",   -9);
      BUF_PARSE_TEST_S(8, "-0x09",  -9);
      BUF_PARSE_TEST_S(8, "-0x009", -9);
      BUF_PARSE_TEST_S(8, "-0xa",   -10);
      BUF_PARSE_TEST_S(8, "-0x0a",  -10);
      BUF_PARSE_TEST_S(8, "-0x00a", -10);
      BUF_PARSE_TEST_S(8, "-0xA",   -10);
      BUF_PARSE_TEST_S(8, "-0x0A",  -10);
      BUF_PARSE_TEST_S(8, "-0x00A", -10);
      BUF_PARSE_TEST_S(8, "-0xb",   -11);
      BUF_PARSE_TEST_S(8, "-0x0b",  -11);
      BUF_PARSE_TEST_S(8, "-0x00b", -11);
      BUF_PARSE_TEST_S(8, "-0xB",   -11);
      BUF_PARSE_TEST_S(8, "-0x0B",  -11);
      BUF_PARSE_TEST_S(8, "-0x00B", -11);
      BUF_PARSE_TEST_S(8, "-0xc",   -12);
      BUF_PARSE_TEST_S(8, "-0x0c",  -12);
      BUF_PARSE_TEST_S(8, "-0x00c", -12);
      BUF_PARSE_TEST_S(8, "-0xC",   -12);
      BUF_PARSE_TEST_S(8, "-0x0C",  -12);
      BUF_PARSE_TEST_S(8, "-0x00C", -12);
      BUF_PARSE_TEST_S(8, "-0xd",   -13);
      BUF_PARSE_TEST_S(8, "-0x0d",  -13);
      BUF_PARSE_TEST_S(8, "-0x00d", -13);
      BUF_PARSE_TEST_S(8, "-0xD",   -13);
      BUF_PARSE_TEST_S(8, "-0x0D",  -13);
      BUF_PARSE_TEST_S(8, "-0x00D", -13);
      BUF_PARSE_TEST_S(8, "-0xe",   -14);
      BUF_PARSE_TEST_S(8, "-0x0e",  -14);
      BUF_PARSE_TEST_S(8, "-0x00e", -14);
      BUF_PARSE_TEST_S(8, "-0xE",   -14);
      BUF_PARSE_TEST_S(8, "-0x0E",  -14);
      BUF_PARSE_TEST_S(8, "-0x00E", -14);
      BUF_PARSE_TEST_S(8, "-0xf",   -15);
      BUF_PARSE_TEST_S(8, "-0x0f",  -15);
      BUF_PARSE_TEST_S(8, "-0x00f", -15);
      BUF_PARSE_TEST_S(8, "-0xF",   -15);
      BUF_PARSE_TEST_S(8, "-0x0F",  -15);
      BUF_PARSE_TEST_S(8, "-0x00F", -15);
      BUF_PARSE_TEST_S(8, "-0x10",  -16);
      BUF_PARSE_TEST_S(8, "-0x010", -16);
      BUF_PARSE_TEST_S(8, "-0x11",  -17);
      BUF_PARSE_TEST_S(8, "-0x011", -17);
      BUF_PARSE_TEST_S(8, "-0x12",  -18);
      BUF_PARSE_TEST_S(8, "-0x012", -18);
      BUF_PARSE_TEST_S(8, "-0x13",  -19);
      BUF_PARSE_TEST_S(8, "-0x013", -19);
      BUF_PARSE_TEST_S(8, "-0x14",  -20);
      BUF_PARSE_TEST_S(8, "-0x014", -20);
      BUF_PARSE_TEST_S(8, "-0x15",  -21);
      BUF_PARSE_TEST_S(8, "-0x015", -21);
      BUF_PARSE_TEST_S(8, "-0x16",  -22);
      BUF_PARSE_TEST_S(8, "-0x016", -22);
      BUF_PARSE_TEST_S(8, "-0x17",  -23);
      BUF_PARSE_TEST_S(8, "-0x017", -23);
      BUF_PARSE_TEST_S(8, "-0x18",  -24);
      BUF_PARSE_TEST_S(8, "-0x018", -24);
      BUF_PARSE_TEST_S(8, "-0x19",  -25);
      BUF_PARSE_TEST_S(8, "-0x019", -25);
      BUF_PARSE_TEST_S(8, "-0x1a",  -26);
      BUF_PARSE_TEST_S(8, "-0x01a", -26);
      BUF_PARSE_TEST_S(8, "-0x1A",  -26);
      BUF_PARSE_TEST_S(8, "-0x01A", -26);
      BUF_PARSE_TEST_S(8, "-0x1b",  -27);
      BUF_PARSE_TEST_S(8, "-0x01b", -27);
      BUF_PARSE_TEST_S(8, "-0x1B",  -27);
      BUF_PARSE_TEST_S(8, "-0x01B", -27);
      BUF_PARSE_TEST_S(8, "-0x1c",  -28);
      BUF_PARSE_TEST_S(8, "-0x01c", -28);
      BUF_PARSE_TEST_S(8, "-0x1C",  -28);
      BUF_PARSE_TEST_S(8, "-0x01C", -28);
      BUF_PARSE_TEST_S(8, "-0x1d",  -29);
      BUF_PARSE_TEST_S(8, "-0x01d", -29);
      BUF_PARSE_TEST_S(8, "-0x1D",  -29);
      BUF_PARSE_TEST_S(8, "-0x01D", -29);
      BUF_PARSE_TEST_S(8, "-0x1e",  -30);
      BUF_PARSE_TEST_S(8, "-0x01e", -30);
      BUF_PARSE_TEST_S(8, "-0x1E",  -30);
      BUF_PARSE_TEST_S(8, "-0x01E", -30);
      BUF_PARSE_TEST_S(8, "-0x1f",  -31);
      BUF_PARSE_TEST_S(8, "-0x01f", -31);
      BUF_PARSE_TEST_S(8, "-0x1F",  -31);
      BUF_PARSE_TEST_S(8, "-0x01F", -31);
      BUF_PARSE_TEST_S(8, "-0x20",  -32);
      BUF_PARSE_TEST_S(8, "-0x020", -32);
      BUF_PARSE_TEST_S(8, "-0x21",  -33);
      BUF_PARSE_TEST_S(8, "-0x021", -33);
      BUF_PARSE_TEST_S(8, "-0x22",  -34);
      BUF_PARSE_TEST_S(8, "-0x022", -34);
      BUF_PARSE_TEST_S(8, "-0x23",  -35);
      BUF_PARSE_TEST_S(8, "-0x023", -35);
      BUF_PARSE_TEST_S(8, "-0x24",  -36);
      BUF_PARSE_TEST_S(8, "-0x024", -36);
      BUF_PARSE_TEST_S(8, "-0x25",  -37);
      BUF_PARSE_TEST_S(8, "-0x025", -37);
      BUF_PARSE_TEST_S(8, "-0x26",  -38);
      BUF_PARSE_TEST_S(8, "-0x026", -38);
      BUF_PARSE_TEST_S(8, "-0x27",  -39);
      BUF_PARSE_TEST_S(8, "-0x027", -39);
      BUF_PARSE_TEST_S(8, "-0x28",  -40);
      BUF_PARSE_TEST_S(8, "-0x028", -40);
      BUF_PARSE_TEST_S(8, "-0x29",  -41);
      BUF_PARSE_TEST_S(8, "-0x029", -41);
      BUF_PARSE_TEST_S(8, "-0x2a",  -42);
      BUF_PARSE_TEST_S(8, "-0x02a", -42);
      BUF_PARSE_TEST_S(8, "-0x2A",  -42);
      BUF_PARSE_TEST_S(8, "-0x02A", -42);
      BUF_PARSE_TEST_S(8, "-0x2b",  -43);
      BUF_PARSE_TEST_S(8, "-0x02b", -43);
      BUF_PARSE_TEST_S(8, "-0x2B",  -43);
      BUF_PARSE_TEST_S(8, "-0x02B", -43);
      BUF_PARSE_TEST_S(8, "-0x2c",  -44);
      BUF_PARSE_TEST_S(8, "-0x02c", -44);
      BUF_PARSE_TEST_S(8, "-0x2C",  -44);
      BUF_PARSE_TEST_S(8, "-0x02C", -44);
      BUF_PARSE_TEST_S(8, "-0x2d",  -45);
      BUF_PARSE_TEST_S(8, "-0x02d", -45);
      BUF_PARSE_TEST_S(8, "-0x2D",  -45);
      BUF_PARSE_TEST_S(8, "-0x02D", -45);
      BUF_PARSE_TEST_S(8, "-0x2e",  -46);
      BUF_PARSE_TEST_S(8, "-0x02e", -46);
      BUF_PARSE_TEST_S(8, "-0x2E",  -46);
      BUF_PARSE_TEST_S(8, "-0x02E", -46);
      BUF_PARSE_TEST_S(8, "-0x2f",  -47);
      BUF_PARSE_TEST_S(8, "-0x02f", -47);
      BUF_PARSE_TEST_S(8, "-0x2F",  -47);
      BUF_PARSE_TEST_S(8, "-0x02F", -47);
      BUF_PARSE_TEST_S(8, "-0x30",  -48);
      BUF_PARSE_TEST_S(8, "-0x030", -48);
      BUF_PARSE_TEST_S(8, "-0x31",  -49);
      BUF_PARSE_TEST_S(8, "-0x031", -49);
      BUF_PARSE_TEST_S(8, "-0x32",  -50);
      BUF_PARSE_TEST_S(8, "-0x032", -50);
      BUF_PARSE_TEST_S(8, "-0x33",  -51);
      BUF_PARSE_TEST_S(8, "-0x033", -51);
      BUF_PARSE_TEST_S(8, "-0x34",  -52);
      BUF_PARSE_TEST_S(8, "-0x034", -52);
      BUF_PARSE_TEST_S(8, "-0x35",  -53);
      BUF_PARSE_TEST_S(8, "-0x035", -53);
      BUF_PARSE_TEST_S(8, "-0x36",  -54);
      BUF_PARSE_TEST_S(8, "-0x036", -54);
      BUF_PARSE_TEST_S(8, "-0x37",  -55);
      BUF_PARSE_TEST_S(8, "-0x037", -55);
      BUF_PARSE_TEST_S(8, "-0x38",  -56);
      BUF_PARSE_TEST_S(8, "-0x038", -56);
      BUF_PARSE_TEST_S(8, "-0x39",  -57);
      BUF_PARSE_TEST_S(8, "-0x039", -57);
      BUF_PARSE_TEST_S(8, "-0x3a",  -58);
      BUF_PARSE_TEST_S(8, "-0x03a", -58);
      BUF_PARSE_TEST_S(8, "-0x3A",  -58);
      BUF_PARSE_TEST_S(8, "-0x03A", -58);
      BUF_PARSE_TEST_S(8, "-0x3b",  -59);
      BUF_PARSE_TEST_S(8, "-0x03b", -59);
      BUF_PARSE_TEST_S(8, "-0x3B",  -59);
      BUF_PARSE_TEST_S(8, "-0x03B", -59);
      BUF_PARSE_TEST_S(8, "-0x3c",  -60);
      BUF_PARSE_TEST_S(8, "-0x03c", -60);
      BUF_PARSE_TEST_S(8, "-0x3C",  -60);
      BUF_PARSE_TEST_S(8, "-0x03C", -60);
      BUF_PARSE_TEST_S(8, "-0x3d",  -61);
      BUF_PARSE_TEST_S(8, "-0x03d", -61);
      BUF_PARSE_TEST_S(8, "-0x3D",  -61);
      BUF_PARSE_TEST_S(8, "-0x03D", -61);
      BUF_PARSE_TEST_S(8, "-0x3e",  -62);
      BUF_PARSE_TEST_S(8, "-0x03e", -62);
      BUF_PARSE_TEST_S(8, "-0x3E",  -62);
      BUF_PARSE_TEST_S(8, "-0x03E", -62);
      BUF_PARSE_TEST_S(8, "-0x3f",  -63);
      BUF_PARSE_TEST_S(8, "-0x03f", -63);
      BUF_PARSE_TEST_S(8, "-0x3F",  -63);
      BUF_PARSE_TEST_S(8, "-0x03F", -63);
      BUF_PARSE_TEST_S(8, "-0x40",  -64);
      BUF_PARSE_TEST_S(8, "-0x040", -64);
      BUF_PARSE_TEST_S(8, "-0x41",  -65);
      BUF_PARSE_TEST_S(8, "-0x041", -65);
      BUF_PARSE_TEST_S(8, "-0x42",  -66);
      BUF_PARSE_TEST_S(8, "-0x042", -66);
      BUF_PARSE_TEST_S(8, "-0x43",  -67);
      BUF_PARSE_TEST_S(8, "-0x043", -67);
      BUF_PARSE_TEST_S(8, "-0x44",  -68);
      BUF_PARSE_TEST_S(8, "-0x044", -68);
      BUF_PARSE_TEST_S(8, "-0x45",  -69);
      BUF_PARSE_TEST_S(8, "-0x045", -69);
      BUF_PARSE_TEST_S(8, "-0x46",  -70);
      BUF_PARSE_TEST_S(8, "-0x046", -70);
      BUF_PARSE_TEST_S(8, "-0x47",  -71);
      BUF_PARSE_TEST_S(8, "-0x047", -71);
      BUF_PARSE_TEST_S(8, "-0x48",  -72);
      BUF_PARSE_TEST_S(8, "-0x048", -72);
      BUF_PARSE_TEST_S(8, "-0x49",  -73);
      BUF_PARSE_TEST_S(8, "-0x049", -73);
      BUF_PARSE_TEST_S(8, "-0x4a",  -74);
      BUF_PARSE_TEST_S(8, "-0x04a", -74);
      BUF_PARSE_TEST_S(8, "-0x4A",  -74);
      BUF_PARSE_TEST_S(8, "-0x04A", -74);
      BUF_PARSE_TEST_S(8, "-0x4b",  -75);
      BUF_PARSE_TEST_S(8, "-0x04b", -75);
      BUF_PARSE_TEST_S(8, "-0x4B",  -75);
      BUF_PARSE_TEST_S(8, "-0x04B", -75);
      BUF_PARSE_TEST_S(8, "-0x4c",  -76);
      BUF_PARSE_TEST_S(8, "-0x04c", -76);
      BUF_PARSE_TEST_S(8, "-0x4C",  -76);
      BUF_PARSE_TEST_S(8, "-0x04C", -76);
      BUF_PARSE_TEST_S(8, "-0x4d",  -77);
      BUF_PARSE_TEST_S(8, "-0x04d", -77);
      BUF_PARSE_TEST_S(8, "-0x4D",  -77);
      BUF_PARSE_TEST_S(8, "-0x04D", -77);
      BUF_PARSE_TEST_S(8, "-0x4e",  -78);
      BUF_PARSE_TEST_S(8, "-0x04e", -78);
      BUF_PARSE_TEST_S(8, "-0x4E",  -78);
      BUF_PARSE_TEST_S(8, "-0x04E", -78);
      BUF_PARSE_TEST_S(8, "-0x4f",  -79);
      BUF_PARSE_TEST_S(8, "-0x04f", -79);
      BUF_PARSE_TEST_S(8, "-0x4F",  -79);
      BUF_PARSE_TEST_S(8, "-0x04F", -79);
      BUF_PARSE_TEST_S(8, "-0x50",  -80);
      BUF_PARSE_TEST_S(8, "-0x050", -80);
      BUF_PARSE_TEST_S(8, "-0x51",  -81);
      BUF_PARSE_TEST_S(8, "-0x051", -81);
      BUF_PARSE_TEST_S(8, "-0x52",  -82);
      BUF_PARSE_TEST_S(8, "-0x052", -82);
      BUF_PARSE_TEST_S(8, "-0x53",  -83);
      BUF_PARSE_TEST_S(8, "-0x053", -83);
      BUF_PARSE_TEST_S(8, "-0x54",  -84);
      BUF_PARSE_TEST_S(8, "-0x054", -84);
      BUF_PARSE_TEST_S(8, "-0x55",  -85);
      BUF_PARSE_TEST_S(8, "-0x055", -85);
      BUF_PARSE_TEST_S(8, "-0x56",  -86);
      BUF_PARSE_TEST_S(8, "-0x056", -86);
      BUF_PARSE_TEST_S(8, "-0x57",  -87);
      BUF_PARSE_TEST_S(8, "-0x057", -87);
      BUF_PARSE_TEST_S(8, "-0x58",  -88);
      BUF_PARSE_TEST_S(8, "-0x058", -88);
      BUF_PARSE_TEST_S(8, "-0x59",  -89);
      BUF_PARSE_TEST_S(8, "-0x059", -89);
      BUF_PARSE_TEST_S(8, "-0x5a",  -90);
      BUF_PARSE_TEST_S(8, "-0x05a", -90);
      BUF_PARSE_TEST_S(8, "-0x5A",  -90);
      BUF_PARSE_TEST_S(8, "-0x05A", -90);
      BUF_PARSE_TEST_S(8, "-0x5b",  -91);
      BUF_PARSE_TEST_S(8, "-0x05b", -91);
      BUF_PARSE_TEST_S(8, "-0x5B",  -91);
      BUF_PARSE_TEST_S(8, "-0x05B", -91);
      BUF_PARSE_TEST_S(8, "-0x5c",  -92);
      BUF_PARSE_TEST_S(8, "-0x05c", -92);
      BUF_PARSE_TEST_S(8, "-0x5C",  -92);
      BUF_PARSE_TEST_S(8, "-0x05C", -92);
      BUF_PARSE_TEST_S(8, "-0x5d",  -93);
      BUF_PARSE_TEST_S(8, "-0x05d", -93);
      BUF_PARSE_TEST_S(8, "-0x5D",  -93);
      BUF_PARSE_TEST_S(8, "-0x05D", -93);
      BUF_PARSE_TEST_S(8, "-0x5e",  -94);
      BUF_PARSE_TEST_S(8, "-0x05e", -94);
      BUF_PARSE_TEST_S(8, "-0x5E",  -94);
      BUF_PARSE_TEST_S(8, "-0x05E", -94);
      BUF_PARSE_TEST_S(8, "-0x5f",  -95);
      BUF_PARSE_TEST_S(8, "-0x05f", -95);
      BUF_PARSE_TEST_S(8, "-0x5F",  -95);
      BUF_PARSE_TEST_S(8, "-0x05F", -95);
      BUF_PARSE_TEST_S(8, "-0x60",  -96);
      BUF_PARSE_TEST_S(8, "-0x060", -96);
      BUF_PARSE_TEST_S(8, "-0x61",  -97);
      BUF_PARSE_TEST_S(8, "-0x061", -97);
      BUF_PARSE_TEST_S(8, "-0x62",  -98);
      BUF_PARSE_TEST_S(8, "-0x062", -98);
      BUF_PARSE_TEST_S(8, "-0x63",  -99);
      BUF_PARSE_TEST_S(8, "-0x063", -99);
      BUF_PARSE_TEST_S(8, "-0x64",  -100);
      BUF_PARSE_TEST_S(8, "-0x064", -100);
      BUF_PARSE_TEST_S(8, "-0x65",  -101);
      BUF_PARSE_TEST_S(8, "-0x065", -101);
      BUF_PARSE_TEST_S(8, "-0x66",  -102);
      BUF_PARSE_TEST_S(8, "-0x066", -102);
      BUF_PARSE_TEST_S(8, "-0x67",  -103);
      BUF_PARSE_TEST_S(8, "-0x067", -103);
      BUF_PARSE_TEST_S(8, "-0x68",  -104);
      BUF_PARSE_TEST_S(8, "-0x068", -104);
      BUF_PARSE_TEST_S(8, "-0x69",  -105);
      BUF_PARSE_TEST_S(8, "-0x069", -105);
      BUF_PARSE_TEST_S(8, "-0x6a",  -106);
      BUF_PARSE_TEST_S(8, "-0x06a", -106);
      BUF_PARSE_TEST_S(8, "-0x6A",  -106);
      BUF_PARSE_TEST_S(8, "-0x06A", -106);
      BUF_PARSE_TEST_S(8, "-0x6b",  -107);
      BUF_PARSE_TEST_S(8, "-0x06b", -107);
      BUF_PARSE_TEST_S(8, "-0x6B",  -107);
      BUF_PARSE_TEST_S(8, "-0x06B", -107);
      BUF_PARSE_TEST_S(8, "-0x6c",  -108);
      BUF_PARSE_TEST_S(8, "-0x06c", -108);
      BUF_PARSE_TEST_S(8, "-0x6C",  -108);
      BUF_PARSE_TEST_S(8, "-0x06C", -108);
      BUF_PARSE_TEST_S(8, "-0x6d",  -109);
      BUF_PARSE_TEST_S(8, "-0x06d", -109);
      BUF_PARSE_TEST_S(8, "-0x6D",  -109);
      BUF_PARSE_TEST_S(8, "-0x06D", -109);
      BUF_PARSE_TEST_S(8, "-0x6e",  -110);
      BUF_PARSE_TEST_S(8, "-0x06e", -110);
      BUF_PARSE_TEST_S(8, "-0x6E",  -110);
      BUF_PARSE_TEST_S(8, "-0x06E", -110);
      BUF_PARSE_TEST_S(8, "-0x6f",  -111);
      BUF_PARSE_TEST_S(8, "-0x06f", -111);
      BUF_PARSE_TEST_S(8, "-0x6F",  -111);
      BUF_PARSE_TEST_S(8, "-0x06F", -111);
      BUF_PARSE_TEST_S(8, "-0x70",  -112);
      BUF_PARSE_TEST_S(8, "-0x070", -112);
      BUF_PARSE_TEST_S(8, "-0x71",  -113);
      BUF_PARSE_TEST_S(8, "-0x071", -113);
      BUF_PARSE_TEST_S(8, "-0x72",  -114);
      BUF_PARSE_TEST_S(8, "-0x072", -114);
      BUF_PARSE_TEST_S(8, "-0x73",  -115);
      BUF_PARSE_TEST_S(8, "-0x073", -115);
      BUF_PARSE_TEST_S(8, "-0x74",  -116);
      BUF_PARSE_TEST_S(8, "-0x074", -116);
      BUF_PARSE_TEST_S(8, "-0x75",  -117);
      BUF_PARSE_TEST_S(8, "-0x075", -117);
      BUF_PARSE_TEST_S(8, "-0x76",  -118);
      BUF_PARSE_TEST_S(8, "-0x076", -118);
      BUF_PARSE_TEST_S(8, "-0x77",  -119);
      BUF_PARSE_TEST_S(8, "-0x077", -119);
      BUF_PARSE_TEST_S(8, "-0x78",  -120);
      BUF_PARSE_TEST_S(8, "-0x078", -120);
      BUF_PARSE_TEST_S(8, "-0x79",  -121);
      BUF_PARSE_TEST_S(8, "-0x079", -121);
      BUF_PARSE_TEST_S(8, "-0x7a",  -122);
      BUF_PARSE_TEST_S(8, "-0x07a", -122);
      BUF_PARSE_TEST_S(8, "-0x7A",  -122);
      BUF_PARSE_TEST_S(8, "-0x07A", -122);
      BUF_PARSE_TEST_S(8, "-0x7b",  -123);
      BUF_PARSE_TEST_S(8, "-0x07b", -123);
      BUF_PARSE_TEST_S(8, "-0x7B",  -123);
      BUF_PARSE_TEST_S(8, "-0x07B", -123);
      BUF_PARSE_TEST_S(8, "-0x7c",  -124);
      BUF_PARSE_TEST_S(8, "-0x07c", -124);
      BUF_PARSE_TEST_S(8, "-0x7C",  -124);
      BUF_PARSE_TEST_S(8, "-0x07C", -124);
      BUF_PARSE_TEST_S(8, "-0x7d",  -125);
      BUF_PARSE_TEST_S(8, "-0x07d", -125);
      BUF_PARSE_TEST_S(8, "-0x7D",  -125);
      BUF_PARSE_TEST_S(8, "-0x07D", -125);
      BUF_PARSE_TEST_S(8, "-0x7e",  -126);
      BUF_PARSE_TEST_S(8, "-0x07e", -126);
      BUF_PARSE_TEST_S(8, "-0x7E",  -126);
      BUF_PARSE_TEST_S(8, "-0x07E", -126);
      BUF_PARSE_TEST_S(8, "-0x7f",  -127);
      BUF_PARSE_TEST_S(8, "-0x07f", -127);
      BUF_PARSE_TEST_S(8, "-0x7F",  -127);
      BUF_PARSE_TEST_S(8, "-0x07F", -127);
      BUF_PARSE_TEST_S(8, "-0x80",  -128);
      BUF_PARSE_TEST_S(8, "-0x080", -128);
    }
    TEST_CASE_END(buf_parse_s8_hexadecimal_negative)
    
    TEST_CASE(buf_parse_s8_decimal)
    {
      BUF_PARSE_TEST_S(8, "0",   0);
      BUF_PARSE_TEST_S(8, "00",  0);
      BUF_PARSE_TEST_S(8, "000", 0);
      BUF_PARSE_TEST_S(8, "1",   1);
      BUF_PARSE_TEST_S(8, "01",  1);
      BUF_PARSE_TEST_S(8, "001", 1);
      BUF_PARSE_TEST_S(8, "2",   2);
      BUF_PARSE_TEST_S(8, "02",  2);
      BUF_PARSE_TEST_S(8, "002", 2);
      BUF_PARSE_TEST_S(8, "3",   3);
      BUF_PARSE_TEST_S(8, "03",  3);
      BUF_PARSE_TEST_S(8, "003", 3);
      BUF_PARSE_TEST_S(8, "4",   4);
      BUF_PARSE_TEST_S(8, "04",  4);
      BUF_PARSE_TEST_S(8, "004", 4);
      BUF_PARSE_TEST_S(8, "5",   5);
      BUF_PARSE_TEST_S(8, "05",  5);
      BUF_PARSE_TEST_S(8, "005", 5);
      BUF_PARSE_TEST_S(8, "6",   6);
      BUF_PARSE_TEST_S(8, "06",  6);
      BUF_PARSE_TEST_S(8, "006", 6);
      BUF_PARSE_TEST_S(8, "7",   7);
      BUF_PARSE_TEST_S(8, "07",  7);
      BUF_PARSE_TEST_S(8, "007", 7);
      BUF_PARSE_TEST_S(8, "8",   8);
      BUF_PARSE_TEST_S(8, "08",  8);
      BUF_PARSE_TEST_S(8, "008", 8);
      BUF_PARSE_TEST_S(8, "9",   9);
      BUF_PARSE_TEST_S(8, "09",  9);
      BUF_PARSE_TEST_S(8, "009", 9);
      BUF_PARSE_TEST_S(8, "10",  10);
      BUF_PARSE_TEST_S(8, "010", 10);
      BUF_PARSE_TEST_S(8, "11",  11);
      BUF_PARSE_TEST_S(8, "011", 11);
      BUF_PARSE_TEST_S(8, "12",  12);
      BUF_PARSE_TEST_S(8, "012", 12);
      BUF_PARSE_TEST_S(8, "13",  13);
      BUF_PARSE_TEST_S(8, "013", 13);
      BUF_PARSE_TEST_S(8, "14",  14);
      BUF_PARSE_TEST_S(8, "014", 14);
      BUF_PARSE_TEST_S(8, "15",  15);
      BUF_PARSE_TEST_S(8, "015", 15);
      BUF_PARSE_TEST_S(8, "16",  16);
      BUF_PARSE_TEST_S(8, "016", 16);
      BUF_PARSE_TEST_S(8, "17",  17);
      BUF_PARSE_TEST_S(8, "017", 17);
      BUF_PARSE_TEST_S(8, "18",  18);
      BUF_PARSE_TEST_S(8, "018", 18);
      BUF_PARSE_TEST_S(8, "19",  19);
      BUF_PARSE_TEST_S(8, "019", 19);
      BUF_PARSE_TEST_S(8, "20",  20);
      BUF_PARSE_TEST_S(8, "020", 20);
      BUF_PARSE_TEST_S(8, "21",  21);
      BUF_PARSE_TEST_S(8, "021", 21);
      BUF_PARSE_TEST_S(8, "22",  22);
      BUF_PARSE_TEST_S(8, "022", 22);
      BUF_PARSE_TEST_S(8, "23",  23);
      BUF_PARSE_TEST_S(8, "023", 23);
      BUF_PARSE_TEST_S(8, "24",  24);
      BUF_PARSE_TEST_S(8, "024", 24);
      BUF_PARSE_TEST_S(8, "25",  25);
      BUF_PARSE_TEST_S(8, "025", 25);
      BUF_PARSE_TEST_S(8, "26",  26);
      BUF_PARSE_TEST_S(8, "026", 26);
      BUF_PARSE_TEST_S(8, "27",  27);
      BUF_PARSE_TEST_S(8, "027", 27);
      BUF_PARSE_TEST_S(8, "28",  28);
      BUF_PARSE_TEST_S(8, "028", 28);
      BUF_PARSE_TEST_S(8, "29",  29);
      BUF_PARSE_TEST_S(8, "029", 29);
      BUF_PARSE_TEST_S(8, "30",  30);
      BUF_PARSE_TEST_S(8, "030", 30);
      BUF_PARSE_TEST_S(8, "31",  31);
      BUF_PARSE_TEST_S(8, "031", 31);
      BUF_PARSE_TEST_S(8, "32",  32);
      BUF_PARSE_TEST_S(8, "032", 32);
      BUF_PARSE_TEST_S(8, "33",  33);
      BUF_PARSE_TEST_S(8, "033", 33);
      BUF_PARSE_TEST_S(8, "34",  34);
      BUF_PARSE_TEST_S(8, "034", 34);
      BUF_PARSE_TEST_S(8, "35",  35);
      BUF_PARSE_TEST_S(8, "035", 35);
      BUF_PARSE_TEST_S(8, "36",  36);
      BUF_PARSE_TEST_S(8, "036", 36);
      BUF_PARSE_TEST_S(8, "37",  37);
      BUF_PARSE_TEST_S(8, "037", 37);
      BUF_PARSE_TEST_S(8, "38",  38);
      BUF_PARSE_TEST_S(8, "038", 38);
      BUF_PARSE_TEST_S(8, "39",  39);
      BUF_PARSE_TEST_S(8, "039", 39);
      BUF_PARSE_TEST_S(8, "40",  40);
      BUF_PARSE_TEST_S(8, "040", 40);
      BUF_PARSE_TEST_S(8, "41",  41);
      BUF_PARSE_TEST_S(8, "041", 41);
      BUF_PARSE_TEST_S(8, "42",  42);
      BUF_PARSE_TEST_S(8, "042", 42);
      BUF_PARSE_TEST_S(8, "43",  43);
      BUF_PARSE_TEST_S(8, "043", 43);
      BUF_PARSE_TEST_S(8, "44",  44);
      BUF_PARSE_TEST_S(8, "044", 44);
      BUF_PARSE_TEST_S(8, "45",  45);
      BUF_PARSE_TEST_S(8, "045", 45);
      BUF_PARSE_TEST_S(8, "46",  46);
      BUF_PARSE_TEST_S(8, "046", 46);
      BUF_PARSE_TEST_S(8, "47",  47);
      BUF_PARSE_TEST_S(8, "047", 47);
      BUF_PARSE_TEST_S(8, "48",  48);
      BUF_PARSE_TEST_S(8, "048", 48);
      BUF_PARSE_TEST_S(8, "49",  49);
      BUF_PARSE_TEST_S(8, "049", 49);
      BUF_PARSE_TEST_S(8, "50",  50);
      BUF_PARSE_TEST_S(8, "050", 50);
      BUF_PARSE_TEST_S(8, "51",  51);
      BUF_PARSE_TEST_S(8, "051", 51);
      BUF_PARSE_TEST_S(8, "52",  52);
      BUF_PARSE_TEST_S(8, "052", 52);
      BUF_PARSE_TEST_S(8, "53",  53);
      BUF_PARSE_TEST_S(8, "053", 53);
      BUF_PARSE_TEST_S(8, "54",  54);
      BUF_PARSE_TEST_S(8, "054", 54);
      BUF_PARSE_TEST_S(8, "55",  55);
      BUF_PARSE_TEST_S(8, "055", 55);
      BUF_PARSE_TEST_S(8, "56",  56);
      BUF_PARSE_TEST_S(8, "056", 56);
      BUF_PARSE_TEST_S(8, "57",  57);
      BUF_PARSE_TEST_S(8, "057", 57);
      BUF_PARSE_TEST_S(8, "58",  58);
      BUF_PARSE_TEST_S(8, "058", 58);
      BUF_PARSE_TEST_S(8, "59",  59);
      BUF_PARSE_TEST_S(8, "059", 59);
      BUF_PARSE_TEST_S(8, "60",  60);
      BUF_PARSE_TEST_S(8, "060", 60);
      BUF_PARSE_TEST_S(8, "61",  61);
      BUF_PARSE_TEST_S(8, "061", 61);
      BUF_PARSE_TEST_S(8, "62",  62);
      BUF_PARSE_TEST_S(8, "062", 62);
      BUF_PARSE_TEST_S(8, "63",  63);
      BUF_PARSE_TEST_S(8, "063", 63);
      BUF_PARSE_TEST_S(8, "64",  64);
      BUF_PARSE_TEST_S(8, "064", 64);
      BUF_PARSE_TEST_S(8, "65",  65);
      BUF_PARSE_TEST_S(8, "065", 65);
      BUF_PARSE_TEST_S(8, "66",  66);
      BUF_PARSE_TEST_S(8, "066", 66);
      BUF_PARSE_TEST_S(8, "67",  67);
      BUF_PARSE_TEST_S(8, "067", 67);
      BUF_PARSE_TEST_S(8, "68",  68);
      BUF_PARSE_TEST_S(8, "068", 68);
      BUF_PARSE_TEST_S(8, "69",  69);
      BUF_PARSE_TEST_S(8, "069", 69);
      BUF_PARSE_TEST_S(8, "70",  70);
      BUF_PARSE_TEST_S(8, "070", 70);
      BUF_PARSE_TEST_S(8, "71",  71);
      BUF_PARSE_TEST_S(8, "071", 71);
      BUF_PARSE_TEST_S(8, "72",  72);
      BUF_PARSE_TEST_S(8, "072", 72);
      BUF_PARSE_TEST_S(8, "73",  73);
      BUF_PARSE_TEST_S(8, "073", 73);
      BUF_PARSE_TEST_S(8, "74",  74);
      BUF_PARSE_TEST_S(8, "074", 74);
      BUF_PARSE_TEST_S(8, "75",  75);
      BUF_PARSE_TEST_S(8, "075", 75);
      BUF_PARSE_TEST_S(8, "76",  76);
      BUF_PARSE_TEST_S(8, "076", 76);
      BUF_PARSE_TEST_S(8, "77",  77);
      BUF_PARSE_TEST_S(8, "077", 77);
      BUF_PARSE_TEST_S(8, "78",  78);
      BUF_PARSE_TEST_S(8, "078", 78);
      BUF_PARSE_TEST_S(8, "79",  79);
      BUF_PARSE_TEST_S(8, "079", 79);
      BUF_PARSE_TEST_S(8, "80",  80);
      BUF_PARSE_TEST_S(8, "080", 80);
      BUF_PARSE_TEST_S(8, "81",  81);
      BUF_PARSE_TEST_S(8, "081", 81);
      BUF_PARSE_TEST_S(8, "82",  82);
      BUF_PARSE_TEST_S(8, "082", 82);
      BUF_PARSE_TEST_S(8, "83",  83);
      BUF_PARSE_TEST_S(8, "083", 83);
      BUF_PARSE_TEST_S(8, "84",  84);
      BUF_PARSE_TEST_S(8, "084", 84);
      BUF_PARSE_TEST_S(8, "85",  85);
      BUF_PARSE_TEST_S(8, "085", 85);
      BUF_PARSE_TEST_S(8, "86",  86);
      BUF_PARSE_TEST_S(8, "086", 86);
      BUF_PARSE_TEST_S(8, "87",  87);
      BUF_PARSE_TEST_S(8, "087", 87);
      BUF_PARSE_TEST_S(8, "88",  88);
      BUF_PARSE_TEST_S(8, "088", 88);
      BUF_PARSE_TEST_S(8, "89",  89);
      BUF_PARSE_TEST_S(8, "089", 89);
      BUF_PARSE_TEST_S(8, "90",  90);
      BUF_PARSE_TEST_S(8, "090", 90);
      BUF_PARSE_TEST_S(8, "91",  91);
      BUF_PARSE_TEST_S(8, "091", 91);
      BUF_PARSE_TEST_S(8, "92",  92);
      BUF_PARSE_TEST_S(8, "092", 92);
      BUF_PARSE_TEST_S(8, "93",  93);
      BUF_PARSE_TEST_S(8, "093", 93);
      BUF_PARSE_TEST_S(8, "94",  94);
      BUF_PARSE_TEST_S(8, "094", 94);
      BUF_PARSE_TEST_S(8, "95",  95);
      BUF_PARSE_TEST_S(8, "095", 95);
      BUF_PARSE_TEST_S(8, "96",  96);
      BUF_PARSE_TEST_S(8, "096", 96);
      BUF_PARSE_TEST_S(8, "97",  97);
      BUF_PARSE_TEST_S(8, "097", 97);
      BUF_PARSE_TEST_S(8, "98",  98);
      BUF_PARSE_TEST_S(8, "098", 98);
      BUF_PARSE_TEST_S(8, "99",  99);
      BUF_PARSE_TEST_S(8, "099", 99);
      BUF_PARSE_TEST_S(8, "100", 100);
      BUF_PARSE_TEST_S(8, "101", 101);
      BUF_PARSE_TEST_S(8, "102", 102);
      BUF_PARSE_TEST_S(8, "103", 103);
      BUF_PARSE_TEST_S(8, "104", 104);
      BUF_PARSE_TEST_S(8, "105", 105);
      BUF_PARSE_TEST_S(8, "106", 106);
      BUF_PARSE_TEST_S(8, "107", 107);
      BUF_PARSE_TEST_S(8, "108", 108);
      BUF_PARSE_TEST_S(8, "109", 109);
      BUF_PARSE_TEST_S(8, "110", 110);
      BUF_PARSE_TEST_S(8, "111", 111);
      BUF_PARSE_TEST_S(8, "112", 112);
      BUF_PARSE_TEST_S(8, "113", 113);
      BUF_PARSE_TEST_S(8, "114", 114);
      BUF_PARSE_TEST_S(8, "115", 115);
      BUF_PARSE_TEST_S(8, "116", 116);
      BUF_PARSE_TEST_S(8, "117", 117);
      BUF_PARSE_TEST_S(8, "118", 118);
      BUF_PARSE_TEST_S(8, "119", 119);
      BUF_PARSE_TEST_S(8, "120", 120);
      BUF_PARSE_TEST_S(8, "121", 121);
      BUF_PARSE_TEST_S(8, "122", 122);
      BUF_PARSE_TEST_S(8, "123", 123);
      BUF_PARSE_TEST_S(8, "124", 124);
      BUF_PARSE_TEST_S(8, "125", 125);
      BUF_PARSE_TEST_S(8, "126", 126);
      BUF_PARSE_TEST_S(8, "127", 127);
    }
    TEST_CASE_END(buf_parse_s8_decimal)
    
    TEST_CASE(buf_parse_s8_decimal_negative)
    {
      BUF_PARSE_TEST_S(8, "-0",    0);
      BUF_PARSE_TEST_S(8, "-00",   0);
      BUF_PARSE_TEST_S(8, "-000",  0);
      BUF_PARSE_TEST_S(8, "-1",   -1);
      BUF_PARSE_TEST_S(8, "-01",  -1);
      BUF_PARSE_TEST_S(8, "-001", -1);
      BUF_PARSE_TEST_S(8, "-2",   -2);
      BUF_PARSE_TEST_S(8, "-02",  -2);
      BUF_PARSE_TEST_S(8, "-002", -2);
      BUF_PARSE_TEST_S(8, "-3",   -3);
      BUF_PARSE_TEST_S(8, "-03",  -3);
      BUF_PARSE_TEST_S(8, "-003", -3);
      BUF_PARSE_TEST_S(8, "-4",   -4);
      BUF_PARSE_TEST_S(8, "-04",  -4);
      BUF_PARSE_TEST_S(8, "-004", -4);
      BUF_PARSE_TEST_S(8, "-5",   -5);
      BUF_PARSE_TEST_S(8, "-05",  -5);
      BUF_PARSE_TEST_S(8, "-005", -5);
      BUF_PARSE_TEST_S(8, "-6",   -6);
      BUF_PARSE_TEST_S(8, "-06",  -6);
      BUF_PARSE_TEST_S(8, "-006", -6);
      BUF_PARSE_TEST_S(8, "-7",   -7);
      BUF_PARSE_TEST_S(8, "-07",  -7);
      BUF_PARSE_TEST_S(8, "-007", -7);
      BUF_PARSE_TEST_S(8, "-8",   -8);
      BUF_PARSE_TEST_S(8, "-08",  -8);
      BUF_PARSE_TEST_S(8, "-008", -8);
      BUF_PARSE_TEST_S(8, "-9",   -9);
      BUF_PARSE_TEST_S(8, "-09",  -9);
      BUF_PARSE_TEST_S(8, "-009", -9);
      BUF_PARSE_TEST_S(8, "-10",  -10);
      BUF_PARSE_TEST_S(8, "-010", -10);
      BUF_PARSE_TEST_S(8, "-11",  -11);
      BUF_PARSE_TEST_S(8, "-011", -11);
      BUF_PARSE_TEST_S(8, "-12",  -12);
      BUF_PARSE_TEST_S(8, "-012", -12);
      BUF_PARSE_TEST_S(8, "-13",  -13);
      BUF_PARSE_TEST_S(8, "-013", -13);
      BUF_PARSE_TEST_S(8, "-14",  -14);
      BUF_PARSE_TEST_S(8, "-014", -14);
      BUF_PARSE_TEST_S(8, "-15",  -15);
      BUF_PARSE_TEST_S(8, "-015", -15);
      BUF_PARSE_TEST_S(8, "-16",  -16);
      BUF_PARSE_TEST_S(8, "-016", -16);
      BUF_PARSE_TEST_S(8, "-17",  -17);
      BUF_PARSE_TEST_S(8, "-017", -17);
      BUF_PARSE_TEST_S(8, "-18",  -18);
      BUF_PARSE_TEST_S(8, "-018", -18);
      BUF_PARSE_TEST_S(8, "-19",  -19);
      BUF_PARSE_TEST_S(8, "-019", -19);
      BUF_PARSE_TEST_S(8, "-20",  -20);
      BUF_PARSE_TEST_S(8, "-020", -20);
      BUF_PARSE_TEST_S(8, "-21",  -21);
      BUF_PARSE_TEST_S(8, "-021", -21);
      BUF_PARSE_TEST_S(8, "-22",  -22);
      BUF_PARSE_TEST_S(8, "-022", -22);
      BUF_PARSE_TEST_S(8, "-23",  -23);
      BUF_PARSE_TEST_S(8, "-023", -23);
      BUF_PARSE_TEST_S(8, "-24",  -24);
      BUF_PARSE_TEST_S(8, "-024", -24);
      BUF_PARSE_TEST_S(8, "-25",  -25);
      BUF_PARSE_TEST_S(8, "-025", -25);
      BUF_PARSE_TEST_S(8, "-26",  -26);
      BUF_PARSE_TEST_S(8, "-026", -26);
      BUF_PARSE_TEST_S(8, "-27",  -27);
      BUF_PARSE_TEST_S(8, "-027", -27);
      BUF_PARSE_TEST_S(8, "-28",  -28);
      BUF_PARSE_TEST_S(8, "-028", -28);
      BUF_PARSE_TEST_S(8, "-29",  -29);
      BUF_PARSE_TEST_S(8, "-029", -29);
      BUF_PARSE_TEST_S(8, "-30",  -30);
      BUF_PARSE_TEST_S(8, "-030", -30);
      BUF_PARSE_TEST_S(8, "-31",  -31);
      BUF_PARSE_TEST_S(8, "-031", -31);
      BUF_PARSE_TEST_S(8, "-32",  -32);
      BUF_PARSE_TEST_S(8, "-032", -32);
      BUF_PARSE_TEST_S(8, "-33",  -33);
      BUF_PARSE_TEST_S(8, "-033", -33);
      BUF_PARSE_TEST_S(8, "-34",  -34);
      BUF_PARSE_TEST_S(8, "-034", -34);
      BUF_PARSE_TEST_S(8, "-35",  -35);
      BUF_PARSE_TEST_S(8, "-035", -35);
      BUF_PARSE_TEST_S(8, "-36",  -36);
      BUF_PARSE_TEST_S(8, "-036", -36);
      BUF_PARSE_TEST_S(8, "-37",  -37);
      BUF_PARSE_TEST_S(8, "-037", -37);
      BUF_PARSE_TEST_S(8, "-38",  -38);
      BUF_PARSE_TEST_S(8, "-038", -38);
      BUF_PARSE_TEST_S(8, "-39",  -39);
      BUF_PARSE_TEST_S(8, "-039", -39);
      BUF_PARSE_TEST_S(8, "-40",  -40);
      BUF_PARSE_TEST_S(8, "-040", -40);
      BUF_PARSE_TEST_S(8, "-41",  -41);
      BUF_PARSE_TEST_S(8, "-041", -41);
      BUF_PARSE_TEST_S(8, "-42",  -42);
      BUF_PARSE_TEST_S(8, "-042", -42);
      BUF_PARSE_TEST_S(8, "-43",  -43);
      BUF_PARSE_TEST_S(8, "-043", -43);
      BUF_PARSE_TEST_S(8, "-44",  -44);
      BUF_PARSE_TEST_S(8, "-044", -44);
      BUF_PARSE_TEST_S(8, "-45",  -45);
      BUF_PARSE_TEST_S(8, "-045", -45);
      BUF_PARSE_TEST_S(8, "-46",  -46);
      BUF_PARSE_TEST_S(8, "-046", -46);
      BUF_PARSE_TEST_S(8, "-47",  -47);
      BUF_PARSE_TEST_S(8, "-047", -47);
      BUF_PARSE_TEST_S(8, "-48",  -48);
      BUF_PARSE_TEST_S(8, "-048", -48);
      BUF_PARSE_TEST_S(8, "-49",  -49);
      BUF_PARSE_TEST_S(8, "-049", -49);
      BUF_PARSE_TEST_S(8, "-50",  -50);
      BUF_PARSE_TEST_S(8, "-050", -50);
      BUF_PARSE_TEST_S(8, "-51",  -51);
      BUF_PARSE_TEST_S(8, "-051", -51);
      BUF_PARSE_TEST_S(8, "-52",  -52);
      BUF_PARSE_TEST_S(8, "-052", -52);
      BUF_PARSE_TEST_S(8, "-53",  -53);
      BUF_PARSE_TEST_S(8, "-053", -53);
      BUF_PARSE_TEST_S(8, "-54",  -54);
      BUF_PARSE_TEST_S(8, "-054", -54);
      BUF_PARSE_TEST_S(8, "-55",  -55);
      BUF_PARSE_TEST_S(8, "-055", -55);
      BUF_PARSE_TEST_S(8, "-56",  -56);
      BUF_PARSE_TEST_S(8, "-056", -56);
      BUF_PARSE_TEST_S(8, "-57",  -57);
      BUF_PARSE_TEST_S(8, "-057", -57);
      BUF_PARSE_TEST_S(8, "-58",  -58);
      BUF_PARSE_TEST_S(8, "-058", -58);
      BUF_PARSE_TEST_S(8, "-59",  -59);
      BUF_PARSE_TEST_S(8, "-059", -59);
      BUF_PARSE_TEST_S(8, "-60",  -60);
      BUF_PARSE_TEST_S(8, "-060", -60);
      BUF_PARSE_TEST_S(8, "-61",  -61);
      BUF_PARSE_TEST_S(8, "-061", -61);
      BUF_PARSE_TEST_S(8, "-62",  -62);
      BUF_PARSE_TEST_S(8, "-062", -62);
      BUF_PARSE_TEST_S(8, "-63",  -63);
      BUF_PARSE_TEST_S(8, "-063", -63);
      BUF_PARSE_TEST_S(8, "-64",  -64);
      BUF_PARSE_TEST_S(8, "-064", -64);
      BUF_PARSE_TEST_S(8, "-65",  -65);
      BUF_PARSE_TEST_S(8, "-065", -65);
      BUF_PARSE_TEST_S(8, "-66",  -66);
      BUF_PARSE_TEST_S(8, "-066", -66);
      BUF_PARSE_TEST_S(8, "-67",  -67);
      BUF_PARSE_TEST_S(8, "-067", -67);
      BUF_PARSE_TEST_S(8, "-68",  -68);
      BUF_PARSE_TEST_S(8, "-068", -68);
      BUF_PARSE_TEST_S(8, "-69",  -69);
      BUF_PARSE_TEST_S(8, "-069", -69);
      BUF_PARSE_TEST_S(8, "-70",  -70);
      BUF_PARSE_TEST_S(8, "-070", -70);
      BUF_PARSE_TEST_S(8, "-71",  -71);
      BUF_PARSE_TEST_S(8, "-071", -71);
      BUF_PARSE_TEST_S(8, "-72",  -72);
      BUF_PARSE_TEST_S(8, "-072", -72);
      BUF_PARSE_TEST_S(8, "-73",  -73);
      BUF_PARSE_TEST_S(8, "-073", -73);
      BUF_PARSE_TEST_S(8, "-74",  -74);
      BUF_PARSE_TEST_S(8, "-074", -74);
      BUF_PARSE_TEST_S(8, "-75",  -75);
      BUF_PARSE_TEST_S(8, "-075", -75);
      BUF_PARSE_TEST_S(8, "-76",  -76);
      BUF_PARSE_TEST_S(8, "-076", -76);
      BUF_PARSE_TEST_S(8, "-77",  -77);
      BUF_PARSE_TEST_S(8, "-077", -77);
      BUF_PARSE_TEST_S(8, "-78",  -78);
      BUF_PARSE_TEST_S(8, "-078", -78);
      BUF_PARSE_TEST_S(8, "-79",  -79);
      BUF_PARSE_TEST_S(8, "-079", -79);
      BUF_PARSE_TEST_S(8, "-80",  -80);
      BUF_PARSE_TEST_S(8, "-080", -80);
      BUF_PARSE_TEST_S(8, "-81",  -81);
      BUF_PARSE_TEST_S(8, "-081", -81);
      BUF_PARSE_TEST_S(8, "-82",  -82);
      BUF_PARSE_TEST_S(8, "-082", -82);
      BUF_PARSE_TEST_S(8, "-83",  -83);
      BUF_PARSE_TEST_S(8, "-083", -83);
      BUF_PARSE_TEST_S(8, "-84",  -84);
      BUF_PARSE_TEST_S(8, "-084", -84);
      BUF_PARSE_TEST_S(8, "-85",  -85);
      BUF_PARSE_TEST_S(8, "-085", -85);
      BUF_PARSE_TEST_S(8, "-86",  -86);
      BUF_PARSE_TEST_S(8, "-086", -86);
      BUF_PARSE_TEST_S(8, "-87",  -87);
      BUF_PARSE_TEST_S(8, "-087", -87);
      BUF_PARSE_TEST_S(8, "-88",  -88);
      BUF_PARSE_TEST_S(8, "-088", -88);
      BUF_PARSE_TEST_S(8, "-89",  -89);
      BUF_PARSE_TEST_S(8, "-089", -89);
      BUF_PARSE_TEST_S(8, "-90",  -90);
      BUF_PARSE_TEST_S(8, "-090", -90);
      BUF_PARSE_TEST_S(8, "-91",  -91);
      BUF_PARSE_TEST_S(8, "-091", -91);
      BUF_PARSE_TEST_S(8, "-92",  -92);
      BUF_PARSE_TEST_S(8, "-092", -92);
      BUF_PARSE_TEST_S(8, "-93",  -93);
      BUF_PARSE_TEST_S(8, "-093", -93);
      BUF_PARSE_TEST_S(8, "-94",  -94);
      BUF_PARSE_TEST_S(8, "-094", -94);
      BUF_PARSE_TEST_S(8, "-95",  -95);
      BUF_PARSE_TEST_S(8, "-095", -95);
      BUF_PARSE_TEST_S(8, "-96",  -96);
      BUF_PARSE_TEST_S(8, "-096", -96);
      BUF_PARSE_TEST_S(8, "-97",  -97);
      BUF_PARSE_TEST_S(8, "-097", -97);
      BUF_PARSE_TEST_S(8, "-98",  -98);
      BUF_PARSE_TEST_S(8, "-098", -98);
      BUF_PARSE_TEST_S(8, "-99",  -99);
      BUF_PARSE_TEST_S(8, "-099", -99);
      BUF_PARSE_TEST_S(8, "-100", -100);
      BUF_PARSE_TEST_S(8, "-101", -101);
      BUF_PARSE_TEST_S(8, "-102", -102);
      BUF_PARSE_TEST_S(8, "-103", -103);
      BUF_PARSE_TEST_S(8, "-104", -104);
      BUF_PARSE_TEST_S(8, "-105", -105);
      BUF_PARSE_TEST_S(8, "-106", -106);
      BUF_PARSE_TEST_S(8, "-107", -107);
      BUF_PARSE_TEST_S(8, "-108", -108);
      BUF_PARSE_TEST_S(8, "-109", -109);
      BUF_PARSE_TEST_S(8, "-110", -110);
      BUF_PARSE_TEST_S(8, "-111", -111);
      BUF_PARSE_TEST_S(8, "-112", -112);
      BUF_PARSE_TEST_S(8, "-113", -113);
      BUF_PARSE_TEST_S(8, "-114", -114);
      BUF_PARSE_TEST_S(8, "-115", -115);
      BUF_PARSE_TEST_S(8, "-116", -116);
      BUF_PARSE_TEST_S(8, "-117", -117);
      BUF_PARSE_TEST_S(8, "-118", -118);
      BUF_PARSE_TEST_S(8, "-119", -119);
      BUF_PARSE_TEST_S(8, "-120", -120);
      BUF_PARSE_TEST_S(8, "-121", -121);
      BUF_PARSE_TEST_S(8, "-122", -122);
      BUF_PARSE_TEST_S(8, "-123", -123);
      BUF_PARSE_TEST_S(8, "-124", -124);
      BUF_PARSE_TEST_S(8, "-125", -125);
      BUF_PARSE_TEST_S(8, "-126", -126);
      BUF_PARSE_TEST_S(8, "-127", -127);
      BUF_PARSE_TEST_S(8, "-128", -128);
    }
    TEST_CASE_END(buf_parse_s8_decimal_negative)
    #endif /* ifdef C3_TEST_BUF_PARSE_SU */