@@ -15,17 +15,107 @@ function setup_path(tc)
15
15
methods (Test )
16
16
17
17
function test_expanduser(tc )
18
- import matlab .unittest .constraints .EndsWithSubstring
19
- import matlab .unittest .constraints .StartsWithSubstring
20
18
21
19
tc .verifyEmpty(stdlib .expanduser(string .empty ))
22
20
tc .verifyEqual(stdlib .expanduser(" " ), " " )
23
21
24
22
tc .verifyEqual(stdlib .expanduser(" ~abc" ), " ~abc" )
25
23
26
- tc .verifyThat(stdlib .expanduser(' ~/foo' ), ~StartsWithSubstring(" ~" ))
24
+ h = stdlib .fileio .homedir();
25
+ tc .verifyEqual(stdlib .expanduser(" ~" ), h )
26
+
27
+ e = stdlib .expanduser(" ~/foo" );
28
+ tc .verifyEqual(e , stdlib .posix(fullfile(h , " foo" )))
29
+
30
+ end
31
+
32
+
33
+ function test_canonical(tc )
34
+ import matlab .unittest .fixtures .TemporaryFolderFixture
35
+ import matlab .unittest .fixtures .CurrentFolderFixture
36
+ import matlab .unittest .constraints .StartsWithSubstring
37
+
38
+ td = tc .applyFixture(TemporaryFolderFixture ).Folder;
39
+ tc .applyFixture(CurrentFolderFixture(td ))
40
+
41
+ % all non-existing files
42
+ tc .verifyEmpty(stdlib .canonical(string .empty ))
43
+ tc .verifyEqual(stdlib .canonical(" " ), " " )
44
+
45
+ pabs = stdlib .canonical(' 2foo' );
46
+ tc .verifyThat(pabs , StartsWithSubstring(" 2foo" ))
47
+
48
+ par1 = stdlib .canonical(" ../2foo" );
49
+ tc .verifyNotEmpty(par1 )
50
+ tc .verifyThat(par1 , StartsWithSubstring(" .." ))
51
+
52
+ pt1 = stdlib .canonical(" bar/../2foo" );
53
+ tc .verifyEqual(pt1 , " 2foo" )
54
+
55
+ % test existing file
56
+ r = stdlib .parent(mfilename(' fullpath' ));
57
+ rp = fullfile(r , " .." );
58
+ tc .verifyEqual(stdlib .canonical(rp ), stdlib .parent(r ))
59
+
60
+ h = stdlib .fileio .homedir ;
61
+ tc .verifyEqual(stdlib .canonical(" ~" ), h )
62
+ tc .verifyEqual(stdlib .canonical(" ~/" ), h )
63
+ tc .verifyEqual(stdlib .canonical(" ~/.." ), stdlib .parent(h ))
64
+
65
+ tc .verifyEqual(stdlib .canonical(" nobody.txt" ), " nobody.txt" )
66
+ tc .verifyEqual(stdlib .canonical(" ../nobody.txt" ), " ../nobody.txt" )
67
+
68
+ end
69
+
70
+
71
+ function test_resolve(tc )
72
+ import matlab .unittest .fixtures .TemporaryFolderFixture
73
+ import matlab .unittest .fixtures .CurrentFolderFixture
74
+ import matlab .unittest .constraints .StartsWithSubstring
75
+ import matlab .unittest .constraints .EndsWithSubstring
76
+ import matlab .unittest .constraints .ContainsSubstring
77
+
78
+ td = tc .applyFixture(TemporaryFolderFixture ).Folder;
79
+ tc .applyFixture(CurrentFolderFixture(td ))
80
+
81
+ % all non-existing files
82
+ tc .verifyEmpty(stdlib .resolve(string .empty ))
83
+ tc .verifyEqual(stdlib .resolve(" " ), stdlib .fileio .posix(pwd ))
84
+
85
+ pabs = stdlib .resolve(' 2foo' );
86
+ pabs2 = stdlib .resolve(' 4foo' );
87
+ tc .verifyThat(pabs , ~StartsWithSubstring(" 2" ))
88
+ tc .verifyTrue(strncmp(pabs , pabs2 , 2 ))
89
+
90
+ par1 = stdlib .resolve(" ../2foo" );
91
+ tc .verifyNotEmpty(par1 )
92
+ tc .verifyThat(par1 , ~ContainsSubstring(" .." ))
93
+
94
+ par2 = stdlib .resolve(" ../4foo" );
95
+ tc .verifyTrue(strncmp(par2 , pabs2 , 2 ))
96
+
97
+ pt1 = stdlib .resolve(" bar/../2foo" );
98
+ tc .verifyNotEmpty(pt1 )
99
+ tc .verifyThat(pt1 , ~ContainsSubstring(" .." ))
100
+
101
+ va = stdlib .resolve(" 2foo" );
102
+ vb = stdlib .resolve(" 4foo" );
103
+ tc .verifyThat(va , ~StartsWithSubstring(" 2" ))
104
+ tc .verifyTrue(strncmp(va , vb , 2 ))
105
+
106
+ % test existing file
107
+ r = stdlib .parent(mfilename(' fullpath' ));
108
+ rp = fullfile(r , " .." );
109
+ tc .verifyEqual(stdlib .resolve(rp ), stdlib .parent(r ))
110
+
111
+ h = stdlib .fileio .homedir ;
112
+ tc .verifyEqual(stdlib .resolve(" ~" ), h )
113
+ tc .verifyEqual(stdlib .resolve(" ~/" ), h )
114
+ tc .verifyEqual(stdlib .resolve(" ~/.." ), stdlib .parent(h ))
115
+
116
+ tc .verifyEqual(stdlib .resolve(" nobody.txt" ), fullfile(td , " nobody.txt" ))
117
+ tc .verifyEqual(stdlib .resolve(" ../nobody.txt" ), fullfile(stdlib .parent(td ), " nobody.txt" ))
27
118
28
- tc .verifyThat(stdlib .expanduser(' ~/foo' ), EndsWithSubstring(" foo" ))
29
119
end
30
120
31
121
0 commit comments