foundationI_fluffos_v1/
foundationI_fluffos_v1/bin/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/ChangeLog.old/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/Win32/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/compat/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/compat/simuls/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/include/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/clone/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/command/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/data/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/etc/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/include/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/inherit/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/inherit/master/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/log/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/single/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/single/tests/compiler/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/single/tests/efuns/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/single/tests/operators/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/testsuite/u/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/tmp/
foundationI_fluffos_v1/fluffos-2.9-ds2.12/windows/
foundationI_fluffos_v1/lib/
foundationI_fluffos_v1/lib/cmds/ambassador/
foundationI_fluffos_v1/lib/cmds/database/
foundationI_fluffos_v1/lib/cmds/soul/
foundationI_fluffos_v1/lib/daemon/include/
foundationI_fluffos_v1/lib/daemon/save/
foundationI_fluffos_v1/lib/daemon/services/
foundationI_fluffos_v1/lib/daemon/soul/
foundationI_fluffos_v1/lib/doc/build/
foundationI_fluffos_v1/lib/doc/build/room/
foundationI_fluffos_v1/lib/doc/build/virtual/
foundationI_fluffos_v1/lib/doc/driver/
foundationI_fluffos_v1/lib/doc/efun/
foundationI_fluffos_v1/lib/doc/etc/
foundationI_fluffos_v1/lib/doc/help/creator/
foundationI_fluffos_v1/lib/doc/help/hm/
foundationI_fluffos_v1/lib/doc/help/user/
foundationI_fluffos_v1/lib/doc/lpc/basic/
foundationI_fluffos_v1/lib/doc/lpc/data_types/
foundationI_fluffos_v1/lib/doc/lpc/etc/
foundationI_fluffos_v1/lib/doc/lpc/intermediate/
foundationI_fluffos_v1/lib/doc/lpc/types/
foundationI_fluffos_v1/lib/doc/mudlib/
foundationI_fluffos_v1/lib/doc/mudlib/features/
foundationI_fluffos_v1/lib/domains/Examples/etc/
foundationI_fluffos_v1/lib/domains/Examples/room/
foundationI_fluffos_v1/lib/domains/Examples/virtual/
foundationI_fluffos_v1/lib/domains/Examples/virtual/exaA/
foundationI_fluffos_v1/lib/domains/Examples/virtual/exaB/
foundationI_fluffos_v1/lib/domains/Examples/weapon/
foundationI_fluffos_v1/lib/domains/Standard/
foundationI_fluffos_v1/lib/domains/Standard/pools/
foundationI_fluffos_v1/lib/domains/Standard/std/
foundationI_fluffos_v1/lib/domains/Standard/xtra/
foundationI_fluffos_v1/lib/include/
foundationI_fluffos_v1/lib/news/
foundationI_fluffos_v1/lib/secure/cfg/
foundationI_fluffos_v1/lib/secure/cmds/adm/
foundationI_fluffos_v1/lib/secure/cmds/ambassador/
foundationI_fluffos_v1/lib/secure/cmds/mortal/
foundationI_fluffos_v1/lib/secure/etc/
foundationI_fluffos_v1/lib/secure/etc/approval/
foundationI_fluffos_v1/lib/secure/etc/elections/
foundationI_fluffos_v1/lib/secure/etc/mudlib/
foundationI_fluffos_v1/lib/secure/etc/quests/
foundationI_fluffos_v1/lib/secure/save/daemon/
foundationI_fluffos_v1/lib/secure/save/postal/d/descartes/
foundationI_fluffos_v1/lib/secure/save/users/d/
foundationI_fluffos_v1/lib/secure/std/
foundationI_fluffos_v1/lib/std/obj/
foundationI_fluffos_v1/lib/std/room/
foundationI_fluffos_v1/lib/std/user/
foundationI_fluffos_v1/lib/std/virtual/
foundationI_fluffos_v1/old/
foundationI_fluffos_v1/win32/
void do_tests() {
    string src = "This is a test";

    for (int i = 0; i < 2; i++) {
	ASSERT(replace_string(src, "", "bar") == src);
	ASSERT(replace_string(src, "foo", "bar", 5, 4) == src);
    
	// case 1: rlen <= plen, plen > 1, rlen > 0
	ASSERT(replace_string(src, "is", "x") == "Thx x a test");
	ASSERT(replace_string(src, "is", "x", 1) == "Thx is a test");
	ASSERT(replace_string(src, "is", "x", 0, 0) == "Thx x a test");
	ASSERT(replace_string(src, "is", "x", 0, 1) == "Thx is a test");
	ASSERT(replace_string(src, "is", "x", 0, 2) == "Thx x a test");
	ASSERT(replace_string(src, "is", "x", 1, 1) == "Thx is a test");
	ASSERT(replace_string(src, "is", "x", 1, 2) == "Thx x a test");
	ASSERT(replace_string(src, "is", "x", 2, 2) == "This x a test");
	// case 2: rlen <= plen, plen > 1, rlen == 0
        ASSERT(replace_string(src, "is", "") == "Th  a test");
	ASSERT(replace_string(src, "is", "", 1) == "Th is a test");
	ASSERT(replace_string(src, "is", "", 0, 0) == "Th  a test");
	ASSERT(replace_string(src, "is", "", 0, 1) == "Th is a test");
	ASSERT(replace_string(src, "is", "", 0, 2) == "Th  a test");
	ASSERT(replace_string(src, "is", "", 1, 1) == "Th is a test");
	ASSERT(replace_string(src, "is", "", 1, 2) == "Th  a test");
	ASSERT(replace_string(src, "is", "", 2, 2) == "This  a test");
        // case 3: rlen <= plen, plen == 1, rlen > 0
	ASSERT(replace_string(src, "s", "x") == "Thix ix a text");
	ASSERT(replace_string(src, "s", "x", 1) == "Thix is a test");
	ASSERT(replace_string(src, "s", "x", 2) == "Thix ix a test");
	ASSERT(replace_string(src, "s", "x", 0, 0) == "Thix ix a text");
	ASSERT(replace_string(src, "s", "x", 0, 1) == "Thix is a test");
	ASSERT(replace_string(src, "s", "x", 0, 2) == "Thix ix a test");
	ASSERT(replace_string(src, "s", "x", 1, 1) == "Thix is a test");
	ASSERT(replace_string(src, "s", "x", 1, 2) == "Thix ix a test");
	ASSERT(replace_string(src, "s", "x", 1, 3) == "Thix ix a text");
	ASSERT(replace_string(src, "s", "x", 2, 2) == "This ix a test");
	// case 4: rlen <= plen, plen == 1, rlen == 0
	ASSERT(replace_string(src, "s", "") == "Thi i a tet");
	ASSERT(replace_string(src, "s", "", 1) == "Thi is a test");
	ASSERT(replace_string(src, "s", "", 2) == "Thi i a test");
	ASSERT(replace_string(src, "s", "", 0, 0) == "Thi i a tet");
	ASSERT(replace_string(src, "s", "", 0, 1) == "Thi is a test");
	ASSERT(replace_string(src, "s", "", 0, 2) == "Thi i a test");
	ASSERT(replace_string(src, "s", "", 1, 1) == "Thi is a test");
	ASSERT(replace_string(src, "s", "", 1, 2) == "Thi i a test");
	ASSERT(replace_string(src, "s", "", 1, 3) == "Thi i a tet");
	ASSERT(replace_string(src, "s", "", 2, 2) == "This i a test");
	// case 5: rlen > plen, plen > 1, rlen > 0
        ASSERT(replace_string(src, "is", "foo") == "Thfoo foo a test");
	ASSERT(replace_string(src, "is", "foo", 1) == "Thfoo is a test");
	ASSERT(replace_string(src, "is", "foo", 2) == "Thfoo foo a test");
	ASSERT(replace_string(src, "is", "foo", 0, 0) == "Thfoo foo a test");
	ASSERT(replace_string(src, "is", "foo", 0, 1) == "Thfoo is a test");
	ASSERT(replace_string(src, "is", "foo", 0, 2) == "Thfoo foo a test");
	ASSERT(replace_string(src, "is", "foo", 1, 1) == "Thfoo is a test");
	ASSERT(replace_string(src, "is", "foo", 1, 2) == "Thfoo foo a test");
	ASSERT(replace_string(src, "is", "foo", 1, 3) == "Thfoo foo a test");
	ASSERT(replace_string(src, "is", "foo", 2, 2) == "This foo a test");
	// case 6: rlen > plen, plen == 1
        ASSERT(replace_string(src, "s", "foo") == "Thifoo ifoo a tefoot");
	ASSERT(replace_string(src, "s", "foo", 1) == "Thifoo is a test");
	ASSERT(replace_string(src, "s", "foo", 2) == "Thifoo ifoo a test");
	ASSERT(replace_string(src, "s", "foo", 0, 0) == "Thifoo ifoo a tefoot");
	ASSERT(replace_string(src, "s", "foo", 0, 1) == "Thifoo is a test");
	ASSERT(replace_string(src, "s", "foo", 0, 2) == "Thifoo ifoo a test");
	ASSERT(replace_string(src, "s", "foo", 1, 1) == "Thifoo is a test");
	ASSERT(replace_string(src, "s", "foo", 1, 2) == "Thifoo ifoo a test");
	ASSERT(replace_string(src, "s", "foo", 1, 3) == "Thifoo ifoo a tefoot");
	ASSERT(replace_string(src, "s", "foo", 2, 2) == "This ifoo a test");

	src = src[0..5] + src[6..];
    }
}