as_str() replaced by str_view()

This commit is contained in:
Christoffer Lerno
2023-09-24 23:50:16 +02:00
parent 3675254af4
commit a1ecf2211f
31 changed files with 223 additions and 222 deletions

View File

@@ -13,12 +13,12 @@ fn void! copy_map() @test
x.init();
DString y;
y.append("hello");
x.set(y.as_str(), 123);
x.set(y.str_view(), 123);
y.append("bye");
x.set(y.as_str(), 333);
x.set(y.str_view(), 333);
y.clear();
y.append("bye");
x.set(y.as_str(), 444);
x.set(y.str_view(), 444);
assert(x.get("hello")! == 123);
assert(x.get("hellobye")! == 333);
assert(x.get("bye")! == 444);

View File

@@ -32,7 +32,7 @@ fn void! readbuffer()
usz n = reader_buf.copy_to(&bw)!;
assert(n == DATA.len, "got %d; want %d", n, DATA.len);
String got = bw.as_str();
String got = bw.str_view();
assert(got == DATA, "got %d; want %d", got, DATA);
}
@@ -47,7 +47,7 @@ fn void! writebuffer_large()
usz n = write_buf.write(DATA)!;
assert(n == DATA.len, "large write failed: got %d; want %d", n, DATA.len);
String got = out.as_str();
String got = out.str_view();
assert(got == DATA, "large write failed: got %d; want %d", got, DATA);
}
@@ -64,6 +64,6 @@ fn void! writebuffer()
usz n = br.copy_to(&write_buf)!;
assert(n == DATA.len, "got %d; want %d", n, DATA.len);
String got = out.as_str();
String got = out.str_view();
assert(got == DATA, "got %d; want %d", got, DATA);
}

View File

@@ -15,12 +15,12 @@ fn void! bytestream()
w.init();
Stream* ws = &w;
ws.write("helloworld")!;
assert(w.as_str() == "helloworld");
assert(w.str_view() == "helloworld");
s.seek(0, SET)!;
ws.read_from(s)!;
s.seek(1, SET)!;
s.write_to(ws)!;
assert(w.as_str() == "helloworldabcbc");
assert(w.str_view() == "helloworldabcbc");
}
fn void! bytewriter_buffer()
@@ -31,7 +31,7 @@ fn void! bytewriter_buffer()
Stream* s = &writer;
s.write("hello")!!;
s.write_byte(0)!!;
String o = ((ZString)&z).as_str();
String o = ((ZString)&z).str_view();
assert(o == "hello");
assert(@catch(s.write("xxxx")));
}
@@ -46,7 +46,7 @@ fn void! bytewriter_read_from()
bw.tinit();
bw.read_from(s)!;
assert(bw.as_str() == data);
assert(bw.str_view() == data);
}
module std::io;

View File

@@ -11,6 +11,6 @@ fn void! test_writing()
ByteReader r;
String test_str = "2134";
s.read_from(r.init(test_str))!;
String o = foo.as_str();
String o = foo.str_view();
assert(o == "hello-what?-------------------------------------------------------2134");
}

View File

@@ -7,14 +7,14 @@ fn void! test_parent()
p = path::new("/", .path_env = PathEnv.POSIX)!;
assert(@catch(p.parent()));
p = path::new("/a/b/c", .path_env = PathEnv.POSIX)!;
assert(p.parent().as_str()! == "/a/b");
assert(p.parent().str_view()! == "/a/b");
p = path::new("/a/b/c", .path_env = PathEnv.WIN32)!;
assert(p.parent().as_str()! == `\a\b`);
assert(p.parent().str_view()! == `\a\b`);
}
fn void! test_path_normalized()
{
assert(path::new("", .path_env = PathEnv.WIN32).as_str()! == "");
assert(path::new("", .path_env = PathEnv.WIN32).str_view()! == "");
assert(@catch(path::new("1:\\a\\b\\c.txt", .path_env = PathEnv.WIN32)));
assert(@catch(path::new(":", .path_env = PathEnv.WIN32)));
assert(@catch(path::new("1:", .path_env = PathEnv.WIN32)));
@@ -35,156 +35,156 @@ fn void! test_path_normalized()
assert(@catch(path::new(`C:/../a`, .path_env = PathEnv.WIN32)));
assert(@catch(path::new(`C:/..`, .path_env = PathEnv.WIN32)));
assert(path::new("/", .path_env = PathEnv.POSIX).as_str()! == "/");
assert(path::new("/./", .path_env = PathEnv.POSIX).as_str()! == "/");
assert(path::new("/foo/../", .path_env = PathEnv.POSIX).as_str()! == "/");
assert(path::new("/foo/bar/../", .path_env = PathEnv.POSIX).as_str()! == "/foo");
assert(path::new("/foo//bar", .path_env = PathEnv.POSIX).as_str()! == "/foo/bar");
assert(path::new("/foo//bar/../", .path_env = PathEnv.POSIX).as_str()! == "/foo");
assert(path::new("/foo/.bar", .path_env = PathEnv.POSIX).as_str()! == "/foo/.bar");
assert(path::new(`\foo\.bar`, .path_env = PathEnv.WIN32).as_str()! == `\foo\.bar`);
assert(path::new("a\\b/c.txt", .path_env = PathEnv.WIN32).as_str()! == `a\b\c.txt`);
assert(path::new("a\\b/c.txt", .path_env = PathEnv.POSIX).as_str()! == "a\\b/c.txt");
assert(path::new("C:\\a\\b/c.txt", .path_env = PathEnv.WIN32).as_str()! == `C:\a\b\c.txt`);
assert(path::new("C:\\a\\b/c.txt", .path_env = PathEnv.POSIX).as_str()! == "C:\\a\\b/c.txt");
assert(path::new(`\\server\a\b/c.txt`, .path_env = PathEnv.WIN32).as_str()! == `\\server\a\b\c.txt`);
assert(path::new(`\\server\a\b/c.txt`, .path_env = PathEnv.POSIX).as_str()! == `\\server\a\b/c.txt`);
assert(path::new(`c:\hello//bar\\\\foo.txt`, .path_env = PathEnv.WIN32).as_str()! == `c:\hello\bar\foo.txt`);
assert(path::new("/", .path_env = PathEnv.POSIX).str_view()! == "/");
assert(path::new("/./", .path_env = PathEnv.POSIX).str_view()! == "/");
assert(path::new("/foo/../", .path_env = PathEnv.POSIX).str_view()! == "/");
assert(path::new("/foo/bar/../", .path_env = PathEnv.POSIX).str_view()! == "/foo");
assert(path::new("/foo//bar", .path_env = PathEnv.POSIX).str_view()! == "/foo/bar");
assert(path::new("/foo//bar/../", .path_env = PathEnv.POSIX).str_view()! == "/foo");
assert(path::new("/foo/.bar", .path_env = PathEnv.POSIX).str_view()! == "/foo/.bar");
assert(path::new(`\foo\.bar`, .path_env = PathEnv.WIN32).str_view()! == `\foo\.bar`);
assert(path::new("a\\b/c.txt", .path_env = PathEnv.WIN32).str_view()! == `a\b\c.txt`);
assert(path::new("a\\b/c.txt", .path_env = PathEnv.POSIX).str_view()! == "a\\b/c.txt");
assert(path::new("C:\\a\\b/c.txt", .path_env = PathEnv.WIN32).str_view()! == `C:\a\b\c.txt`);
assert(path::new("C:\\a\\b/c.txt", .path_env = PathEnv.POSIX).str_view()! == "C:\\a\\b/c.txt");
assert(path::new(`\\server\a\b/c.txt`, .path_env = PathEnv.WIN32).str_view()! == `\\server\a\b\c.txt`);
assert(path::new(`\\server\a\b/c.txt`, .path_env = PathEnv.POSIX).str_view()! == `\\server\a\b/c.txt`);
assert(path::new(`c:\hello//bar\\\\foo.txt`, .path_env = PathEnv.WIN32).str_view()! == `c:\hello\bar\foo.txt`);
assert(path::new(`~\a\b/c.txt`, .path_env = PathEnv.WIN32).as_str()! == `~\a\b\c.txt`);
assert(path::new(`~\a\b/c.txt`, .path_env = PathEnv.POSIX).as_str()! == `~\a\b/c.txt`);
assert(path::new(`~\a\b/c.txt`, .path_env = PathEnv.WIN32).str_view()! == `~\a\b\c.txt`);
assert(path::new(`~\a\b/c.txt`, .path_env = PathEnv.POSIX).str_view()! == `~\a\b/c.txt`);
assert(path::new(`a/b/../../../c`, .path_env = PathEnv.WIN32).as_str()! == `..\c`);
assert(path::new(`a/b/../../../c`, .path_env = PathEnv.POSIX).as_str()! == `../c`);
assert(path::new(`a/b/../../..`, .path_env = PathEnv.WIN32).as_str()! == `..`);
assert(path::new(`a/b/../../..`, .path_env = PathEnv.POSIX).as_str()! == `..`);
assert(path::new(`../a`, .path_env = PathEnv.WIN32).as_str()! == `..\a`);
assert(path::new(`../a`, .path_env = PathEnv.POSIX).as_str()! == `../a`);
assert(path::new(`..`, .path_env = PathEnv.WIN32).as_str()! == `..`);
assert(path::new(`..`, .path_env = PathEnv.POSIX).as_str()! == `..`);
assert(path::new(`a/b/../c`, .path_env = PathEnv.WIN32).as_str()! == `a\c`);
assert(path::new(`a/b/../c`, .path_env = PathEnv.POSIX).as_str()! == `a/c`);
assert(path::new(`a/b/../../c`, .path_env = PathEnv.WIN32).as_str()! == `c`);
assert(path::new(`a/b/../../c`, .path_env = PathEnv.POSIX).as_str()! == `c`);
assert(path::new(`a/b/..`, .path_env = PathEnv.WIN32).as_str()! == `a`);
assert(path::new(`a/b/..`, .path_env = PathEnv.POSIX).as_str()! == `a`);
assert(path::new(`a/b/../`, .path_env = PathEnv.WIN32).as_str()! == `a`);
assert(path::new(`a/b/../`, .path_env = PathEnv.POSIX).as_str()! == `a`);
assert(path::new(`a/b/../..`, .path_env = PathEnv.WIN32).as_str()! == "");
assert(path::new(`a/b/../..`, .path_env = PathEnv.POSIX).as_str()! == "");
assert(path::new(`a/b/../../`, .path_env = PathEnv.WIN32).as_str()! == "");
assert(path::new(`a/b/../../`, .path_env = PathEnv.POSIX).as_str()! == "");
assert(path::new(`a/b/../c/../d`, .path_env = PathEnv.WIN32).as_str()! == `a\d`);
assert(path::new(`a/b/../c/../d`, .path_env = PathEnv.POSIX).as_str()! == `a/d`);
assert(path::new(`a/b/../c/../d/`, .path_env = PathEnv.WIN32).as_str()! == `a\d`);
assert(path::new(`a/b/../c/../d/`, .path_env = PathEnv.POSIX).as_str()! == `a/d`);
assert(path::new(`a/b//d`, .path_env = PathEnv.WIN32).as_str()! == `a\b\d`);
assert(path::new(`a/b//d`, .path_env = PathEnv.POSIX).as_str()! == `a/b/d`);
assert(path::new(`a/b/././.`, .path_env = PathEnv.WIN32).as_str()! == `a\b`);
assert(path::new(`a/b/././.`, .path_env = PathEnv.POSIX).as_str()! == `a/b`);
assert(path::new(`a/b/./././`, .path_env = PathEnv.WIN32).as_str()! == `a\b`);
assert(path::new(`a/b/./././`, .path_env = PathEnv.POSIX).as_str()! == `a/b`);
assert(path::new(`./a/`, .path_env = PathEnv.WIN32).as_str()! == `a`);
assert(path::new(`./a/`, .path_env = PathEnv.POSIX).as_str()! == `a`);
assert(path::new(`./`, .path_env = PathEnv.WIN32).as_str()! == ``);
assert(path::new(`./`, .path_env = PathEnv.POSIX).as_str()! == ``);
assert(path::new(`.`, .path_env = PathEnv.WIN32).as_str()! == ``);
assert(path::new(`.`, .path_env = PathEnv.POSIX).as_str()! == ``);
assert(path::new(``, .path_env = PathEnv.WIN32).as_str()! == ``);
assert(path::new(``, .path_env = PathEnv.POSIX).as_str()! == ``);
assert(path::new(`/a`, .path_env = PathEnv.WIN32).as_str()! == `\a`);
assert(path::new(`/a`, .path_env = PathEnv.POSIX).as_str()! == `/a`);
assert(path::new(`/a/`, .path_env = PathEnv.WIN32).as_str()! == `\a`);
assert(path::new(`/a/`, .path_env = PathEnv.POSIX).as_str()! == `/a`);
assert(path::new(`/a/b/../c`, .path_env = PathEnv.WIN32).as_str()! == `\a\c`);
assert(path::new(`/a/b/../c`, .path_env = PathEnv.POSIX).as_str()! == `/a/c`);
assert(path::new(`/a/b/../../c`, .path_env = PathEnv.WIN32).as_str()! == `\c`);
assert(path::new(`/a/b/../../c`, .path_env = PathEnv.POSIX).as_str()! == `/c`);
assert(path::new(`/a/b/..`, .path_env = PathEnv.WIN32).as_str()! == `\a`);
assert(path::new(`/a/b/..`, .path_env = PathEnv.POSIX).as_str()! == `/a`);
assert(path::new(`/a/b/../..`, .path_env = PathEnv.WIN32).as_str()! == `\`);
assert(path::new(`/a/b/../..`, .path_env = PathEnv.POSIX).as_str()! == `/`);
assert(path::new(`/a/b/../c/../d`, .path_env = PathEnv.WIN32).as_str()! == `\a\d`);
assert(path::new(`/a/b/../c/../d`, .path_env = PathEnv.POSIX).as_str()! == `/a/d`);
assert(path::new(`/a/b//d`, .path_env = PathEnv.WIN32).as_str()! == `\a\b\d`);
assert(path::new(`/a/b//d`, .path_env = PathEnv.POSIX).as_str()! == `/a/b/d`);
assert(path::new(`/./a/`, .path_env = PathEnv.WIN32).as_str()! == `\a`);
assert(path::new(`/./a/`, .path_env = PathEnv.POSIX).as_str()! == `/a`);
assert(path::new(`/./`, .path_env = PathEnv.WIN32).as_str()! == `\`);
assert(path::new(`/./`, .path_env = PathEnv.POSIX).as_str()! == `/`);
assert(path::new(`/.`, .path_env = PathEnv.WIN32).as_str()! == `\`);
assert(path::new(`/.`, .path_env = PathEnv.POSIX).as_str()! == `/`);
assert(path::new(`/`, .path_env = PathEnv.WIN32).as_str()! == `\`);
assert(path::new(`/`, .path_env = PathEnv.POSIX).as_str()! == `/`);
assert(path::new(`C:/a`, .path_env = PathEnv.WIN32).as_str()! == `C:\a`);
assert(path::new(`C:/a`, .path_env = PathEnv.POSIX).as_str()! == `C:/a`);
assert(path::new(`C:/a/b/../c`, .path_env = PathEnv.WIN32).as_str()! == `C:\a\c`);
assert(path::new(`C:/a/b/../c`, .path_env = PathEnv.POSIX).as_str()! == `C:/a/c`);
assert(path::new(`C:/a/b/../../c`, .path_env = PathEnv.WIN32).as_str()! == `C:\c`);
assert(path::new(`C:/a/b/../../c`, .path_env = PathEnv.POSIX).as_str()! == `C:/c`);
assert(path::new(`C:/a/b/../../../c`, .path_env = PathEnv.POSIX).as_str()! == `c`);
assert(path::new(`C:/a/b/..`, .path_env = PathEnv.WIN32).as_str()! == `C:\a`);
assert(path::new(`C:/a/b/..`, .path_env = PathEnv.POSIX).as_str()! == `C:/a`);
assert(path::new(`C:/a/b/../..`, .path_env = PathEnv.WIN32).as_str()! == `C:\`);
assert(path::new(`C:/a/b/../..`, .path_env = PathEnv.POSIX).as_str()! == `C:`);
assert(path::new(`C:/a/b/../c/../d`, .path_env = PathEnv.WIN32).as_str()! == `C:\a\d`);
assert(path::new(`C:/a/b/../c/../d`, .path_env = PathEnv.POSIX).as_str()! == `C:/a/d`);
assert(path::new(`C:/a/b//d`, .path_env = PathEnv.WIN32).as_str()! == `C:\a\b\d`);
assert(path::new(`C:/a/b//d`, .path_env = PathEnv.POSIX).as_str()! == `C:/a/b/d`);
assert(path::new(`C:/a/b/././.`, .path_env = PathEnv.WIN32).as_str()! == `C:\a\b`);
assert(path::new(`C:/a/b/././.`, .path_env = PathEnv.POSIX).as_str()! == `C:/a/b`);
assert(path::new(`C:/./a`, .path_env = PathEnv.WIN32).as_str()! == `C:\a`);
assert(path::new(`C:/./a`, .path_env = PathEnv.POSIX).as_str()! == `C:/a`);
assert(path::new(`C:/./`, .path_env = PathEnv.WIN32).as_str()! == `C:\`);
assert(path::new(`C:/./`, .path_env = PathEnv.POSIX).as_str()! == `C:`);
assert(path::new(`C:/../a`, .path_env = PathEnv.POSIX).as_str()! == `a`);
assert(path::new(`C:/..`, .path_env = PathEnv.POSIX).as_str()! == ``);
assert(path::new(`C:/`, .path_env = PathEnv.WIN32).as_str()! == `C:\`);
assert(path::new(`C:/`, .path_env = PathEnv.POSIX).as_str()! == `C:`);
assert(path::new(`C:a`, .path_env = PathEnv.WIN32).as_str()! == `C:a`);
assert(path::new(`C:a`, .path_env = PathEnv.POSIX).as_str()! == `C:a`);
assert(path::new(`C:a/`, .path_env = PathEnv.WIN32).as_str()! == `C:a`);
assert(path::new(`C:a/`, .path_env = PathEnv.POSIX).as_str()! == `C:a`);
assert(path::new(`a/b/../../../c`, .path_env = PathEnv.WIN32).str_view()! == `..\c`);
assert(path::new(`a/b/../../../c`, .path_env = PathEnv.POSIX).str_view()! == `../c`);
assert(path::new(`a/b/../../..`, .path_env = PathEnv.WIN32).str_view()! == `..`);
assert(path::new(`a/b/../../..`, .path_env = PathEnv.POSIX).str_view()! == `..`);
assert(path::new(`../a`, .path_env = PathEnv.WIN32).str_view()! == `..\a`);
assert(path::new(`../a`, .path_env = PathEnv.POSIX).str_view()! == `../a`);
assert(path::new(`..`, .path_env = PathEnv.WIN32).str_view()! == `..`);
assert(path::new(`..`, .path_env = PathEnv.POSIX).str_view()! == `..`);
assert(path::new(`a/b/../c`, .path_env = PathEnv.WIN32).str_view()! == `a\c`);
assert(path::new(`a/b/../c`, .path_env = PathEnv.POSIX).str_view()! == `a/c`);
assert(path::new(`a/b/../../c`, .path_env = PathEnv.WIN32).str_view()! == `c`);
assert(path::new(`a/b/../../c`, .path_env = PathEnv.POSIX).str_view()! == `c`);
assert(path::new(`a/b/..`, .path_env = PathEnv.WIN32).str_view()! == `a`);
assert(path::new(`a/b/..`, .path_env = PathEnv.POSIX).str_view()! == `a`);
assert(path::new(`a/b/../`, .path_env = PathEnv.WIN32).str_view()! == `a`);
assert(path::new(`a/b/../`, .path_env = PathEnv.POSIX).str_view()! == `a`);
assert(path::new(`a/b/../..`, .path_env = PathEnv.WIN32).str_view()! == "");
assert(path::new(`a/b/../..`, .path_env = PathEnv.POSIX).str_view()! == "");
assert(path::new(`a/b/../../`, .path_env = PathEnv.WIN32).str_view()! == "");
assert(path::new(`a/b/../../`, .path_env = PathEnv.POSIX).str_view()! == "");
assert(path::new(`a/b/../c/../d`, .path_env = PathEnv.WIN32).str_view()! == `a\d`);
assert(path::new(`a/b/../c/../d`, .path_env = PathEnv.POSIX).str_view()! == `a/d`);
assert(path::new(`a/b/../c/../d/`, .path_env = PathEnv.WIN32).str_view()! == `a\d`);
assert(path::new(`a/b/../c/../d/`, .path_env = PathEnv.POSIX).str_view()! == `a/d`);
assert(path::new(`a/b//d`, .path_env = PathEnv.WIN32).str_view()! == `a\b\d`);
assert(path::new(`a/b//d`, .path_env = PathEnv.POSIX).str_view()! == `a/b/d`);
assert(path::new(`a/b/././.`, .path_env = PathEnv.WIN32).str_view()! == `a\b`);
assert(path::new(`a/b/././.`, .path_env = PathEnv.POSIX).str_view()! == `a/b`);
assert(path::new(`a/b/./././`, .path_env = PathEnv.WIN32).str_view()! == `a\b`);
assert(path::new(`a/b/./././`, .path_env = PathEnv.POSIX).str_view()! == `a/b`);
assert(path::new(`./a/`, .path_env = PathEnv.WIN32).str_view()! == `a`);
assert(path::new(`./a/`, .path_env = PathEnv.POSIX).str_view()! == `a`);
assert(path::new(`./`, .path_env = PathEnv.WIN32).str_view()! == ``);
assert(path::new(`./`, .path_env = PathEnv.POSIX).str_view()! == ``);
assert(path::new(`.`, .path_env = PathEnv.WIN32).str_view()! == ``);
assert(path::new(`.`, .path_env = PathEnv.POSIX).str_view()! == ``);
assert(path::new(``, .path_env = PathEnv.WIN32).str_view()! == ``);
assert(path::new(``, .path_env = PathEnv.POSIX).str_view()! == ``);
assert(path::new(`/a`, .path_env = PathEnv.WIN32).str_view()! == `\a`);
assert(path::new(`/a`, .path_env = PathEnv.POSIX).str_view()! == `/a`);
assert(path::new(`/a/`, .path_env = PathEnv.WIN32).str_view()! == `\a`);
assert(path::new(`/a/`, .path_env = PathEnv.POSIX).str_view()! == `/a`);
assert(path::new(`/a/b/../c`, .path_env = PathEnv.WIN32).str_view()! == `\a\c`);
assert(path::new(`/a/b/../c`, .path_env = PathEnv.POSIX).str_view()! == `/a/c`);
assert(path::new(`/a/b/../../c`, .path_env = PathEnv.WIN32).str_view()! == `\c`);
assert(path::new(`/a/b/../../c`, .path_env = PathEnv.POSIX).str_view()! == `/c`);
assert(path::new(`/a/b/..`, .path_env = PathEnv.WIN32).str_view()! == `\a`);
assert(path::new(`/a/b/..`, .path_env = PathEnv.POSIX).str_view()! == `/a`);
assert(path::new(`/a/b/../..`, .path_env = PathEnv.WIN32).str_view()! == `\`);
assert(path::new(`/a/b/../..`, .path_env = PathEnv.POSIX).str_view()! == `/`);
assert(path::new(`/a/b/../c/../d`, .path_env = PathEnv.WIN32).str_view()! == `\a\d`);
assert(path::new(`/a/b/../c/../d`, .path_env = PathEnv.POSIX).str_view()! == `/a/d`);
assert(path::new(`/a/b//d`, .path_env = PathEnv.WIN32).str_view()! == `\a\b\d`);
assert(path::new(`/a/b//d`, .path_env = PathEnv.POSIX).str_view()! == `/a/b/d`);
assert(path::new(`/./a/`, .path_env = PathEnv.WIN32).str_view()! == `\a`);
assert(path::new(`/./a/`, .path_env = PathEnv.POSIX).str_view()! == `/a`);
assert(path::new(`/./`, .path_env = PathEnv.WIN32).str_view()! == `\`);
assert(path::new(`/./`, .path_env = PathEnv.POSIX).str_view()! == `/`);
assert(path::new(`/.`, .path_env = PathEnv.WIN32).str_view()! == `\`);
assert(path::new(`/.`, .path_env = PathEnv.POSIX).str_view()! == `/`);
assert(path::new(`/`, .path_env = PathEnv.WIN32).str_view()! == `\`);
assert(path::new(`/`, .path_env = PathEnv.POSIX).str_view()! == `/`);
assert(path::new(`C:/a`, .path_env = PathEnv.WIN32).str_view()! == `C:\a`);
assert(path::new(`C:/a`, .path_env = PathEnv.POSIX).str_view()! == `C:/a`);
assert(path::new(`C:/a/b/../c`, .path_env = PathEnv.WIN32).str_view()! == `C:\a\c`);
assert(path::new(`C:/a/b/../c`, .path_env = PathEnv.POSIX).str_view()! == `C:/a/c`);
assert(path::new(`C:/a/b/../../c`, .path_env = PathEnv.WIN32).str_view()! == `C:\c`);
assert(path::new(`C:/a/b/../../c`, .path_env = PathEnv.POSIX).str_view()! == `C:/c`);
assert(path::new(`C:/a/b/../../../c`, .path_env = PathEnv.POSIX).str_view()! == `c`);
assert(path::new(`C:/a/b/..`, .path_env = PathEnv.WIN32).str_view()! == `C:\a`);
assert(path::new(`C:/a/b/..`, .path_env = PathEnv.POSIX).str_view()! == `C:/a`);
assert(path::new(`C:/a/b/../..`, .path_env = PathEnv.WIN32).str_view()! == `C:\`);
assert(path::new(`C:/a/b/../..`, .path_env = PathEnv.POSIX).str_view()! == `C:`);
assert(path::new(`C:/a/b/../c/../d`, .path_env = PathEnv.WIN32).str_view()! == `C:\a\d`);
assert(path::new(`C:/a/b/../c/../d`, .path_env = PathEnv.POSIX).str_view()! == `C:/a/d`);
assert(path::new(`C:/a/b//d`, .path_env = PathEnv.WIN32).str_view()! == `C:\a\b\d`);
assert(path::new(`C:/a/b//d`, .path_env = PathEnv.POSIX).str_view()! == `C:/a/b/d`);
assert(path::new(`C:/a/b/././.`, .path_env = PathEnv.WIN32).str_view()! == `C:\a\b`);
assert(path::new(`C:/a/b/././.`, .path_env = PathEnv.POSIX).str_view()! == `C:/a/b`);
assert(path::new(`C:/./a`, .path_env = PathEnv.WIN32).str_view()! == `C:\a`);
assert(path::new(`C:/./a`, .path_env = PathEnv.POSIX).str_view()! == `C:/a`);
assert(path::new(`C:/./`, .path_env = PathEnv.WIN32).str_view()! == `C:\`);
assert(path::new(`C:/./`, .path_env = PathEnv.POSIX).str_view()! == `C:`);
assert(path::new(`C:/../a`, .path_env = PathEnv.POSIX).str_view()! == `a`);
assert(path::new(`C:/..`, .path_env = PathEnv.POSIX).str_view()! == ``);
assert(path::new(`C:/`, .path_env = PathEnv.WIN32).str_view()! == `C:\`);
assert(path::new(`C:/`, .path_env = PathEnv.POSIX).str_view()! == `C:`);
assert(path::new(`C:a`, .path_env = PathEnv.WIN32).str_view()! == `C:a`);
assert(path::new(`C:a`, .path_env = PathEnv.POSIX).str_view()! == `C:a`);
assert(path::new(`C:a/`, .path_env = PathEnv.WIN32).str_view()! == `C:a`);
assert(path::new(`C:a/`, .path_env = PathEnv.POSIX).str_view()! == `C:a`);
assert(path::new(`C:a/b/../c`, .path_env = PathEnv.WIN32).as_str()! == `C:a\c`);
assert(path::new(`C:a/b/../c`, .path_env = PathEnv.POSIX).as_str()! == `C:a/c`);
assert(path::new(`C:a/b/../../c`, .path_env = PathEnv.WIN32).as_str()! == `C:c`);
assert(path::new(`C:a/b/../../c`, .path_env = PathEnv.POSIX).as_str()! == `c`);
assert(path::new(`C:a/b/..`, .path_env = PathEnv.WIN32).as_str()! == `C:a`);
assert(path::new(`C:a/b/..`, .path_env = PathEnv.POSIX).as_str()! == `C:a`);
assert(path::new(`C:a/b/../..`, .path_env = PathEnv.WIN32).as_str()! == `C:`);
assert(path::new(`C:a/b/../..`, .path_env = PathEnv.POSIX).as_str()! == ``);
assert(path::new(`C:a/b/../c/../d`, .path_env = PathEnv.WIN32).as_str()! == `C:a\d`);
assert(path::new(`C:a/b/../c/../d`, .path_env = PathEnv.POSIX).as_str()! == `C:a/d`);
assert(path::new(`C:a/b//d`, .path_env = PathEnv.WIN32).as_str()! == `C:a\b\d`);
assert(path::new(`C:a/b//d`, .path_env = PathEnv.POSIX).as_str()! == `C:a/b/d`);
assert(path::new(`C:a/b/././.`, .path_env = PathEnv.WIN32).as_str()! == `C:a\b`);
assert(path::new(`C:a/b/././.`, .path_env = PathEnv.POSIX).as_str()! == `C:a/b`);
assert(path::new(`C:a/b/../../../c`, .path_env = PathEnv.WIN32).as_str()! == `C:..\c`);
assert(path::new(`C:./a`, .path_env = PathEnv.WIN32).as_str()! == `C:a`);
assert(path::new(`C:./a`, .path_env = PathEnv.POSIX).as_str()! == `C:./a`);
assert(path::new(`C:./`, .path_env = PathEnv.WIN32).as_str()! == `C:`);
assert(path::new(`C:./`, .path_env = PathEnv.POSIX).as_str()! == `C:.`);
assert(path::new(`C:../a`, .path_env = PathEnv.POSIX).as_str()! == `C:../a`);
assert(path::new(`C:../a`, .path_env = PathEnv.WIN32).as_str()! == `C:..\a`);
assert(path::new(`C:..`, .path_env = PathEnv.POSIX).as_str()! == `C:..`);
assert(path::new(`C:..`, .path_env = PathEnv.WIN32).as_str()! == `C:..`);
assert(path::new(`C:`, .path_env = PathEnv.WIN32).as_str()! == `C:`);
assert(path::new(`C:`, .path_env = PathEnv.POSIX).as_str()! == `C:`);
assert(path::new(`C:a/b/../c`, .path_env = PathEnv.WIN32).str_view()! == `C:a\c`);
assert(path::new(`C:a/b/../c`, .path_env = PathEnv.POSIX).str_view()! == `C:a/c`);
assert(path::new(`C:a/b/../../c`, .path_env = PathEnv.WIN32).str_view()! == `C:c`);
assert(path::new(`C:a/b/../../c`, .path_env = PathEnv.POSIX).str_view()! == `c`);
assert(path::new(`C:a/b/..`, .path_env = PathEnv.WIN32).str_view()! == `C:a`);
assert(path::new(`C:a/b/..`, .path_env = PathEnv.POSIX).str_view()! == `C:a`);
assert(path::new(`C:a/b/../..`, .path_env = PathEnv.WIN32).str_view()! == `C:`);
assert(path::new(`C:a/b/../..`, .path_env = PathEnv.POSIX).str_view()! == ``);
assert(path::new(`C:a/b/../c/../d`, .path_env = PathEnv.WIN32).str_view()! == `C:a\d`);
assert(path::new(`C:a/b/../c/../d`, .path_env = PathEnv.POSIX).str_view()! == `C:a/d`);
assert(path::new(`C:a/b//d`, .path_env = PathEnv.WIN32).str_view()! == `C:a\b\d`);
assert(path::new(`C:a/b//d`, .path_env = PathEnv.POSIX).str_view()! == `C:a/b/d`);
assert(path::new(`C:a/b/././.`, .path_env = PathEnv.WIN32).str_view()! == `C:a\b`);
assert(path::new(`C:a/b/././.`, .path_env = PathEnv.POSIX).str_view()! == `C:a/b`);
assert(path::new(`C:a/b/../../../c`, .path_env = PathEnv.WIN32).str_view()! == `C:..\c`);
assert(path::new(`C:./a`, .path_env = PathEnv.WIN32).str_view()! == `C:a`);
assert(path::new(`C:./a`, .path_env = PathEnv.POSIX).str_view()! == `C:./a`);
assert(path::new(`C:./`, .path_env = PathEnv.WIN32).str_view()! == `C:`);
assert(path::new(`C:./`, .path_env = PathEnv.POSIX).str_view()! == `C:.`);
assert(path::new(`C:../a`, .path_env = PathEnv.POSIX).str_view()! == `C:../a`);
assert(path::new(`C:../a`, .path_env = PathEnv.WIN32).str_view()! == `C:..\a`);
assert(path::new(`C:..`, .path_env = PathEnv.POSIX).str_view()! == `C:..`);
assert(path::new(`C:..`, .path_env = PathEnv.WIN32).str_view()! == `C:..`);
assert(path::new(`C:`, .path_env = PathEnv.WIN32).str_view()! == `C:`);
assert(path::new(`C:`, .path_env = PathEnv.POSIX).str_view()! == `C:`);
assert(path::new(`\\server/a`, .path_env = PathEnv.WIN32).as_str()! == `\\server\a`);
assert(path::new(`\\server/a`, .path_env = PathEnv.POSIX).as_str()! == `\\server/a`);
assert(path::new(`\\server\a\b\..\c`, .path_env = PathEnv.WIN32).as_str()! == `\\server\a\c`);
assert(path::new(`\\server\a\b\..\..\c`, .path_env = PathEnv.WIN32).as_str()! == `\\server\c`);
assert(path::new(`\\server\a\b\..`, .path_env = PathEnv.WIN32).as_str()! == `\\server\a`);
assert(path::new(`\\server\a\..`, .path_env = PathEnv.WIN32).as_str()! == `\\server\`);
assert(path::new(`\\server\a\b\..\c\..\d`, .path_env = PathEnv.WIN32).as_str()! == `\\server\a\d`);
assert(path::new(`\\server\a\b\\d`, .path_env = PathEnv.WIN32).as_str()! == `\\server\a\b\d`);
assert(path::new(`\\server\a\b\.\.\.`, .path_env = PathEnv.WIN32).as_str()! == `\\server\a\b`);
assert(path::new(`\\server\.\a`, .path_env = PathEnv.WIN32).as_str()! == `\\server\a`);
assert(path::new(`\\server\.`, .path_env = PathEnv.WIN32).as_str()! == `\\server\`);
assert(path::new(`\\server\`, .path_env = PathEnv.WIN32).as_str()! == `\\server\`);
assert(path::new(`\\server/a`, .path_env = PathEnv.WIN32).str_view()! == `\\server\a`);
assert(path::new(`\\server/a`, .path_env = PathEnv.POSIX).str_view()! == `\\server/a`);
assert(path::new(`\\server\a\b\..\c`, .path_env = PathEnv.WIN32).str_view()! == `\\server\a\c`);
assert(path::new(`\\server\a\b\..\..\c`, .path_env = PathEnv.WIN32).str_view()! == `\\server\c`);
assert(path::new(`\\server\a\b\..`, .path_env = PathEnv.WIN32).str_view()! == `\\server\a`);
assert(path::new(`\\server\a\..`, .path_env = PathEnv.WIN32).str_view()! == `\\server\`);
assert(path::new(`\\server\a\b\..\c\..\d`, .path_env = PathEnv.WIN32).str_view()! == `\\server\a\d`);
assert(path::new(`\\server\a\b\\d`, .path_env = PathEnv.WIN32).str_view()! == `\\server\a\b\d`);
assert(path::new(`\\server\a\b\.\.\.`, .path_env = PathEnv.WIN32).str_view()! == `\\server\a\b`);
assert(path::new(`\\server\.\a`, .path_env = PathEnv.WIN32).str_view()! == `\\server\a`);
assert(path::new(`\\server\.`, .path_env = PathEnv.WIN32).str_view()! == `\\server\`);
assert(path::new(`\\server\`, .path_env = PathEnv.WIN32).str_view()! == `\\server\`);
}
@@ -305,8 +305,8 @@ fn void! test_path_is_absolute()
fn void! test_path_absolute()
{
assert(path::new_posix("/").absolute()!.as_str() == "/");
assert(path::new_posix(".").absolute()!.as_str() == path::getcwd(mem::temp())!!.as_str());
assert(path::new_posix("/").absolute()!.str_view() == "/");
assert(path::new_posix(".").absolute()!.str_view() == path::getcwd(mem::temp())!!.str_view());
assert(path::new_windows(`C:\abs`).absolute()!.as_str() == `C:\abs`);
assert(path::new_windows(`C:\abs`).absolute()!.str_view() == `C:\abs`);
}