public void StringUtility_CompareNoCase_2() { Assert.IsTrue(StringUtility.CompareNoCase(string.Empty, string.Empty) == 0); Assert.IsTrue(StringUtility.CompareNoCase(" ", " ") == 0); Assert.IsTrue(StringUtility.CompareNoCase("Hello", "HELLO") == 0); Assert.IsFalse(StringUtility.CompareNoCase("Hello", "HELLO2") == 0); }
public void StringUtility_CompareNoCase_1() { Assert.IsTrue(StringUtility.CompareNoCase('A', 'a') == 0); Assert.IsTrue(StringUtility.CompareNoCase('A', 'A') == 0); Assert.IsTrue(StringUtility.CompareNoCase(' ', ' ') == 0); Assert.IsFalse(StringUtility.CompareNoCase(' ', 'A') == 0); }
private static bool _CompareDatabases ( [CanBeNull] string first, [CanBeNull] string second ) { if (string.IsNullOrEmpty(first) && string.IsNullOrEmpty(second)) { return(true); } return(StringUtility.CompareNoCase(first, second) == 0); }
public static string GetRelativePath ( [NotNull] string absolutePath, [NotNull] string baseDirectory ) { Code.NotNullNorEmpty(absolutePath, "absolutePath"); Code.NotNullNorEmpty(baseDirectory, "baseDirectory"); // absolutePath = Path.GetFullPath(absolutePath); // baseDirectory = Path.GetFullPath(baseDirectory); #if PORTABLE string mainSeparator = "\\"; string altSeparator = "/"; #else string mainSeparator = char.ToString(Path.DirectorySeparatorChar); string altSeparator = char.ToString(Path.AltDirectorySeparatorChar); #endif string[] separators = { mainSeparator, altSeparator }; string[] absoluteParts = StringUtility.SplitString ( absolutePath, separators, StringSplitOptions.RemoveEmptyEntries ); string[] baseParts = StringUtility.SplitString ( baseDirectory, separators, StringSplitOptions.RemoveEmptyEntries ); int length = Math.Min ( absoluteParts.Length, baseParts.Length ); int offset = 0; for (int i = 0; i < length; i++) { if (StringUtility.CompareNoCase ( absoluteParts[i], baseParts[i] )) { offset++; } else { break; } } if (0 == offset) { if (!absolutePath.StartsWith(mainSeparator)) // Linux { throw new ArgumentException ( "Paths do not have a common base!" ); } } var relativePath = new StringBuilder(); for (int i = 0; i < baseParts.Length - offset; i++) { relativePath.Append(".."); relativePath.Append(mainSeparator); } for (int i = offset; i < absoluteParts.Length - 1; i++) { relativePath.Append(absoluteParts[i]); relativePath.Append(mainSeparator); } relativePath.Append(absoluteParts[absoluteParts.Length - 1]); return(relativePath.ToString()); }