for (int i = 0 ; i<tests ; ++i)
const int numTests = sizeof(tests) / sizeof(tests[0]);  for (int i = 0 ; i<numTests ; ++i)
int doMakeAbsTest(const char* i_URL = 0, const char* i_relativePortion=0){    if (i_URL && i_relativePortion)    {        return makeAbsTest(i_URL, i_relativePortion);    }    // Run standard tests. These tests are based on the ones described in     // rfc1808    /* Section 5.1.  Normal Examples      g:h        = <URL:g:h>      g          = <URL:http://a/b/c/g>      ./g        = <URL:http://a/b/c/g>      g/         = <URL:http://a/b/c/g/>      /g         = <URL:http://a/g>      //g        = <URL:http://g>      ?y         = <URL:http://a/b/c/d;p?y>      g?y        = <URL:http://a/b/c/g?y>      g?y/./x    = <URL:http://a/b/c/g?y/./x>      #s         = <URL:http://a/b/c/d;p?q#s>      g#s        = <URL:http://a/b/c/g#s>      g#s/./x    = <URL:http://a/b/c/g#s/./x>      g?y#s      = <URL:http://a/b/c/g?y#s>      ;x         = <URL:http://a/b/c/d;x>      g;x        = <URL:http://a/b/c/g;x>      g;x?y#s    = <URL:http://a/b/c/g;x?y#s>      .          = <URL:http://a/b/c/>      ./         = <URL:http://a/b/c/>      ..         = <URL:http://a/b/>      ../        = <URL:http://a/b/>      ../g       = <URL:http://a/b/g>      ../..      = <URL:http://a/>      ../../     = <URL:http://a/>      ../../g    = <URL:http://a/g>    */    const int tests = 25;    const char baseURL[] = "http://a/b/c/d;p?q#f";    const char* rel[tests] =     {        "g:h",        "g",          "./g",        "g/",        "/g",        "//g",        "?y",        "g?y",        "g?y/./x",        "#s",        "g#s",        "g#s/./x",        "g?y#s",        ";x",        "g;x",        "g;x?y#s",        ".",        "./",        "..",        "../",        "../g",        "../..",        "../../",        "../../g",        "#my::anchor"    };    const char* results[tests] =     {        "g:h",        "http://a/b/c/g",        "http://a/b/c/g",        "http://a/b/c/g/",        "http://a/g",        "http://g",        "http://a/b/c/d;p?y",        "http://a/b/c/g?y",        "http://a/b/c/g?y/./x",        "http://a/b/c/d;p?q#s",        "http://a/b/c/g#s",        "http://a/b/c/g#s/./x",        "http://a/b/c/g?y#s",        "http://a/b/c/d;x",        "http://a/b/c/g;x",        "http://a/b/c/g;x?y#s",        "http://a/b/c/",        "http://a/b/c/",        "http://a/b/",        "http://a/b/",        "http://a/b/g",        "http://a/",        "http://a/",        "http://a/g",        "http://a/b/c/d;p?q#my::anchor"    };    for (int i = 0 ; i<tests ; ++i)    {        makeAbsTest(baseURL, rel[i]);        cout << "Expect " << results[i] << endl << endl;    }    return 0;}