anchor.diff:  uses std.io;
   
   unittest std.io.path.extension {
  -	var tryPathExtension = func (cref file: string, cref expect: string, cref withDot: string) {
  +	var try_path_extension = func (cref file: string, cref expect: string, cref withDot: string) {
   		var expectHas = (not withDot.empty);
   		ref expectDot = withDot;
   		ref expectNoDot = expect;
  
positive.code: 			printerr("    expect: '\(expect)'\n");
  		}
  	}
  	tryPathFolder("/foo/baz/baz.txt", expect: "/foo/baz");
  	tryPathFolder("/foo/baz/baz", expect: "/foo/baz");
  	tryPathFolder("/foo/baz//.config", expect: "/foo/baz/");
  	tryPathFolder("/foo/baz/", expect: "/foo/baz");
  	tryPathFolder("/foo/", expect: "/foo");
  	tryPathFolder("/", expect: "");
  	tryPathFolder("", expect: "");
  }
  
  unittest std.io.path.parent {
  	var tryPathParentFolder = func (cref path: string, cref expect: string) {
  		ref got = std.io.path.parent(path);
  		if got != expect then {
  			printerr("error: fail '\(path)'\n");
  
negative.code: 			printerr("    expect: '\(expect)'\n");
  		}
  	}
  	try_path_normalize("", expect: "");
  	try_path_normalize(".", expect: ".");
  	try_path_normalize("..", expect: "..");
  	try_path_normalize("/", expect: "/");
  	try_path_normalize("/foo", expect: "/foo");
  	try_path_normalize("foo", expect: "foo");
  	try_path_normalize("o", expect: "o");
  	try_path_normalize(".config", expect: ".config");
  	try_path_normalize(".config/", expect: ".config");
  	try_path_normalize(".config/.", expect: ".config");
  
  	try_path_normalize("/foo/bar/.", expect: "/foo/bar");
  	try_path_normalize("/foo/bar/./", expect: "/foo/bar");
  	try_path_normalize("/foo/bar/..", expect: "/foo");
  	try_path_normalize("/foo/bar/../", expect: "/foo");
  	try_path_normalize("/foo/bar/../baz", expect: "/foo/baz");
  	try_path_normalize("/foo/bar/../..", expect: "/");
  	try_path_normalize("/foo/bar/../../", expect: "/");
  	try_path_normalize("/foo/bar/../../baz", expect: "/baz");
  	try_path_normalize("/foo/bar/../../../baz", expect: "/baz");
  	try_path_normalize("/foo/bar/../../../../baz", expect: "/baz");
  	try_path_normalize("/./foo", expect: "/foo");
  	try_path_normalize("/../foo", expect: "/foo");
  	try_path_normalize("/foo.", expect: "/foo.");
  	try_path_normalize("/.foo", expect: "/.foo");
  	try_path_normalize("/foo..", expect: "/foo..");
  	try_path_normalize("/..foo", expect: "/..foo");
  	try_path_normalize("/./../foo", expect: "/foo");
  	try_path_normalize("/./foo/.", expect: "/foo");
  	try_path_normalize("/foo/./bar", expect: "/foo/bar");
  	try_path_normalize("/foo/../bar", expect: "/bar");
  	try_path_normalize("/foo//", expect: "/foo");
  	try_path_normalize("/foo///bar//", expect: "/foo/bar");
  
  	try_path_normalize("./foo/bar/.", expect: "foo/bar");
  	try_path_normalize("./foo/bar/./", expect: "foo/bar");
  	try_path_normalize("./foo/bar/..", expect: "foo");
  	try_path_normalize("./foo/bar/../", expect: "foo");
  	try_path_normalize("./foo/bar/../baz", expect: "foo/baz");
  	try_path_normalize("./foo/bar/../..", expect: ".");
  	try_path_normalize("./foo/bar/../../", expect: ".");
  	try_path_normalize("./foo/bar/../../baz", expect: "baz");
  	try_path_normalize("./foo/bar/../../../baz", expect: "../baz");
  	try_path_normalize("./foo/bar/../../../../baz", expect: "../../baz");
  }
  