pth 0.23.0

Collection of algorithms and structures to handle paths properly.
Documentation
#[ allow( unused_imports ) ]
use super::*;


#[ test ]
fn test_empty_ext() 
{
  let got = the_module::path::change_ext( "some.txt", "" );
  let expected = "some";
  assert_eq!( got.unwrap().to_string_lossy(), expected );
}

#[ test ]
fn test_simple_change_extension() 
{
  let got = the_module::path::change_ext( "some.txt", "json" );
  let expected = "some.json";
  assert_eq!( got.unwrap().to_string_lossy(), expected );
}

#[ test ]
fn test_path_with_non_empty_dir_name() 
{
  let got = the_module::path::change_ext( "/foo/bar/baz.asdf", "txt" );
  let expected = "/foo/bar/baz.txt";
  assert_eq!( got.unwrap().to_string_lossy(), expected );
}

#[ test ]
fn test_change_extension_of_hidden_file() 
{
  let got = the_module::path::change_ext( "/foo/bar/.baz", "sh" );
  let expected = "/foo/bar/.baz.sh";
  assert_eq!( got.unwrap().to_string_lossy(), expected );
}

#[ test ]
fn test_change_extension_in_composite_file_name() 
{
  let got = the_module::path::change_ext( "/foo.coffee.md", "min" );
  let expected = "/foo.coffee.min";
  assert_eq!( got.unwrap().to_string_lossy(), expected );
}

#[ test ]
fn test_add_extension_to_file_without_extension() 
{
  let got = the_module::path::change_ext( "/foo/bar/baz", "txt" );
  let expected = "/foo/bar/baz.txt";
  assert_eq!( got.unwrap().to_string_lossy(), expected );
}

#[ test ]
fn test_path_folder_contains_dot_file_without_extension() 
{
  let got = the_module::path::change_ext( "/foo/baz.bar/some.md", "txt" );
  let expected = "/foo/baz.bar/some.txt";
  assert_eq!( got.unwrap().to_string_lossy(), expected );
}

#[ test ]
fn test_relative_path_1() 
{
  let got = the_module::path::change_ext( "./foo/.baz", "txt" );
  let expected = "./foo/.baz.txt";
  assert_eq!( got.unwrap().to_string_lossy(), expected );
}

#[ test ]
fn test_relative_path_2() 
{
  let got = the_module::path::change_ext( "./.baz", "txt" );
  let expected = "./.baz.txt";
  assert_eq!( got.unwrap().to_string_lossy(), expected );
}

#[ test ]
fn test_relative_path_3() 
{
  let got = the_module::path::change_ext( ".baz", "txt" );
  let expected = ".baz.txt";
  assert_eq!( got.unwrap().to_string_lossy(), expected );
}

#[ test ]
fn test_relative_path_4() 
{
  let got = the_module::path::change_ext( "./baz", "txt" );
  let expected = "./baz.txt";
  assert_eq!( got.unwrap().to_string_lossy(), expected );
}

#[ test ]
fn test_relative_path_5() 
{
  let got = the_module::path::change_ext( "./foo/baz", "txt" );
  let expected = "./foo/baz.txt";
  assert_eq!( got.unwrap().to_string_lossy(), expected );
}

#[ test ]
fn test_relative_path_6() 
{
  let got = the_module::path::change_ext( "./foo/", "txt" );
  let expected = "./foo/.txt";
  assert_eq!( got.unwrap().to_string_lossy(), expected );
}