Changeset 110 for trunk/NewView/unittests/StringUtilsUnitTests.pas
- Timestamp:
- Apr 25, 2007, 10:26:44 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NewView/unittests/StringUtilsUnitTests.pas
r106 r110 5 5 uses 6 6 Classes, 7 SysUtils, 7 8 TestAssert, 8 9 StringUtilsUnit; … … 1675 1676 // ---------------------------------------------------------- 1676 1677 1678 1679 PROCEDURE testCaseInsensitivePos_Empty; 1680 VAR 1681 tmpResult : longint; 1682 BEGIN 1683 tmpResult := CaseInsensitivePos('', ''); 1684 1685 assertEqualsInt('testCaseInsensitivePos_Empty', Pos('', ''), tmpResult); 1686 END; 1687 1688 1689 PROCEDURE testCaseInsensitivePos_EmptyPart; 1690 VAR 1691 tmpResult : longint; 1692 BEGIN 1693 tmpResult := CaseInsensitivePos('', 'abc'); 1694 1695 assertEqualsInt('testCaseInsensitivePos_EmptyPart', Pos('', 'abc'), tmpResult); 1696 END; 1697 1698 1699 PROCEDURE testCaseInsensitivePos_EmptyString; 1700 VAR 1701 tmpResult : longint; 1702 BEGIN 1703 tmpResult := CaseInsensitivePos('abc', ''); 1704 1705 assertEqualsInt('testCaseInsensitivePos_EmptyString', Pos('abc', ''), tmpResult); 1706 END; 1707 1708 1709 PROCEDURE testCaseInsensitivePos_PartLarger; 1710 VAR 1711 tmpResult : longint; 1712 BEGIN 1713 tmpResult := CaseInsensitivePos('abc', 'ab'); 1714 1715 assertEqualsInt('testCaseInsensitivePos_PartLarger', Pos('abc', 'ab'), tmpResult); 1716 END; 1717 1718 1719 PROCEDURE testCaseInsensitivePos_AtLeft; 1720 VAR 1721 tmpResult : integer; 1722 BEGIN 1723 tmpResult := CaseInsensitivePos('abCd', 'aBcDef'); 1724 1725 assertEqualsInt('testCaseInsensitivePos_AtLeft', Pos('abcd', 'abcdef'), tmpResult); 1726 END; 1727 1728 1729 PROCEDURE testCaseInsensitivePos_Middle; 1730 VAR 1731 tmpResult : integer; 1732 BEGIN 1733 tmpResult := CaseInsensitivePos('abCd', '12aBcDef'); 1734 1735 assertEqualsInt('testCaseInsensitivePos_Middle', Pos('abcd', '12abcdef'), tmpResult); 1736 END; 1737 1738 1739 PROCEDURE testCaseInsensitivePos_AtRight; 1740 VAR 1741 tmpResult : integer; 1742 BEGIN 1743 tmpResult := CaseInsensitivePos('abCd', 'efaBcD'); 1744 1745 assertEqualsInt('testCaseInsensitivePos_AtRight', Pos('abcd', 'efabcd'), tmpResult); 1746 END; 1747 1748 1749 PROCEDURE testCaseInsensitivePos; 1750 VAR 1751 tmpPart : String; 1752 tmpString : String; 1753 tmpResult,i : integer; 1754 BEGIN 1755 tmpPart := ''; 1756 tmpString := ''; 1757 1758 for i:=1 to 255 do 1759 begin 1760 tmpPart := tmpPart + char(i); 1761 tmpString := tmpString + char(i); 1762 end; 1763 1764 tmpResult := CaseInsensitivePos(tmpPart, UpperCase(tmpString)); 1765 assertEqualsInt('testCaseInsensitivePos', 1, tmpResult); 1766 1767 tmpResult := CaseInsensitivePos(UpperCase(tmpPart), tmpString); 1768 assertEqualsInt('testCaseInsensitivePos', 1, tmpResult); 1769 1770 tmpResult := CaseInsensitivePos(tmpPart, LowerCase(tmpString)); 1771 assertEqualsInt('testCaseInsensitivePos', 1, tmpResult); 1772 1773 tmpResult := CaseInsensitivePos(LowerCase(tmpPart), tmpString); 1774 assertEqualsInt('testCaseInsensitivePos', 1, tmpResult); 1775 END; 1776 1777 1778 // -------------------- 1779 // ---- AnsiString ---- 1780 // -------------------- 1781 1782 1783 PROCEDURE testAnsiTrimLeftChars_Empty; 1784 VAR 1785 tmpResult : AnsiString; 1786 tmpValue : AnsiString; 1787 BEGIN 1788 tmpValue := ''; 1789 tmpResult := AnsiStrTrimLeftChars(tmpValue, ['b', 'x']); 1790 1791 assertEqualsAnsiString('testAnsiTrimLeftChars_Empty', '', tmpResult); 1792 END; 1793 1794 1795 PROCEDURE testAnsiTrimLeftChars_RemoveAll; 1796 VAR 1797 tmpResult : AnsiString; 1798 tmpValue : AnsiString; 1799 BEGIN 1800 tmpValue := 'bxxxbx'; 1801 tmpResult := AnsiStrTrimLeftChars(tmpValue, ['b', 'x']); 1802 1803 assertEqualsAnsiString('testAnsiTrimLeftChars_RemoveAll', '', tmpResult); 1804 END; 1805 1806 1807 PROCEDURE testAnsiTrimLeftChars_OneLeft; 1808 VAR 1809 tmpResult : AnsiString; 1810 tmpValue : AnsiString; 1811 BEGIN 1812 tmpValue := 'bxy'; 1813 tmpResult := AnsiStrTrimLeftChars(tmpValue, ['b', 'x']); 1814 1815 assertEqualsAnsiString('testAnsiTrimLeftChars_OneLeft', 'y', tmpResult); 1816 END; 1817 1818 1819 PROCEDURE testAnsiTrimLeftChars_LeftOnly; 1820 VAR 1821 tmpResult : AnsiString; 1822 tmpValue : AnsiString; 1823 BEGIN 1824 tmpValue := 'bxbxxay'; 1825 tmpResult := AnsiStrTrimLeftChars(tmpValue, ['b', 'x']); 1826 1827 assertEqualsAnsiString('testAnsiTrimLeftChars_LeftOnly', 'ay', tmpResult); 1828 END; 1829 1830 1831 PROCEDURE testAnsiTrimLeftChars_CharsInside; 1832 VAR 1833 tmpResult : AnsiString; 1834 tmpValue : AnsiString; 1835 BEGIN 1836 tmpValue := 'bxabxvvx'; 1837 tmpResult := AnsiStrTrimLeftChars(tmpValue, ['b', 'x']); 1838 1839 assertEqualsAnsiString('testAnsiTrimLeftChars_CharsInside', 'abxvvx', tmpResult); 1840 END; 1841 1842 1843 PROCEDURE testAnsiTrimLeftChars_Nothing; 1844 VAR 1845 tmpResult : AnsiString; 1846 tmpValue : AnsiString; 1847 BEGIN 1848 tmpValue := 'acdef'; 1849 tmpResult := AnsiStrTrimLeftChars('acdef', ['b', 'x']); 1850 1851 assertEqualsAnsiString('testAnsiTrimLeftChars_Nothing', 'acdef', tmpResult); 1852 END; 1853 1854 1855 PROCEDURE testAnsiTrimLeftChars_ReallyLong; 1856 VAR 1857 tmpResult : AnsiString; 1858 tmpValue : AnsiString; 1859 BEGIN 1860 tmpValue := '0123456789'; 1861 tmpValue := tmpValue + tmpValue; 1862 tmpValue := tmpValue + tmpValue; 1863 tmpValue := tmpValue + tmpValue; 1864 tmpValue := tmpValue + tmpValue; 1865 tmpValue := tmpValue + tmpValue; 1866 assertEqualsInt('testAnsiTrimLeftChars_ReallyLong', 320, Length(tmpValue)); 1867 1868 tmpResult := AnsiStrTrimLeftChars(tmpValue, ['0', '1']); 1869 1870 assertEqualsInt('testAnsiTrimLeftChars_ReallyLong', 318, Length(tmpResult)); 1871 END; 1872 1873 1874 // ------------------------------------------------------------------- 1875 1876 1877 PROCEDURE testAnsiTrimRightChars_Empty; 1878 VAR 1879 tmpResult : AnsiString; 1880 tmpValue : AnsiString; 1881 BEGIN 1882 tmpValue := ''; 1883 tmpResult := AnsiStrTrimRightChars(tmpValue, ['b', 'x']); 1884 1885 assertEqualsAnsiString('testAnsiTrimRightChars_Empty', '', tmpResult); 1886 END; 1887 1888 1889 PROCEDURE testAnsiTrimRightChars_RemoveAll; 1890 VAR 1891 tmpResult : AnsiString; 1892 tmpValue : AnsiString; 1893 BEGIN 1894 tmpValue := 'bxxxbx'; 1895 tmpResult := AnsiStrTrimRightChars(tmpValue, ['b', 'x']); 1896 1897 assertEqualsAnsiString('testAnsiTrimRightChars_RemoveAll', '', tmpResult); 1898 END; 1899 1900 1901 PROCEDURE testAnsiTrimRightChars_OneLeft; 1902 VAR 1903 tmpResult : AnsiString; 1904 tmpValue : AnsiString; 1905 BEGIN 1906 tmpValue := 'ybx'; 1907 tmpResult := AnsiStrTrimRightChars(tmpValue, ['b', 'x']); 1908 1909 assertEqualsAnsiString('testAnsiTrimRightChars_OneLeft', 'y', tmpResult); 1910 END; 1911 1912 1913 PROCEDURE testAnsiTrimRightChars_RightOnly; 1914 VAR 1915 tmpResult : AnsiString; 1916 tmpValue : AnsiString; 1917 BEGIN 1918 tmpValue := 'aybxbxx'; 1919 tmpResult := AnsiStrTrimRightChars(tmpValue, ['b', 'x']); 1920 1921 assertEqualsAnsiString('testAnsiTrimRightChars_RightOnly', 'ay', tmpResult); 1922 END; 1923 1924 1925 PROCEDURE testAnsiTrimRightChars_CharsInside; 1926 VAR 1927 tmpResult : AnsiString; 1928 tmpValue : AnsiString; 1929 BEGIN 1930 tmpValue := 'abxvvxb'; 1931 tmpResult := AnsiStrTrimRightChars(tmpValue, ['b', 'x']); 1932 1933 assertEqualsAnsiString('testAnsiTrimRightChars_CharsInside', 'abxvv', tmpResult); 1934 END; 1935 1936 1937 PROCEDURE testAnsiTrimRightChars_Nothing; 1938 VAR 1939 tmpResult : AnsiString; 1940 tmpValue : AnsiString; 1941 BEGIN 1942 tmpValue := 'acdef'; 1943 tmpResult := AnsiStrTrimRightChars(tmpValue, ['b', 'x']); 1944 1945 assertEqualsAnsiString('testAnsiTrimRightChars_Nothing', 'acdef', tmpResult); 1946 END; 1947 1948 1949 PROCEDURE testAnsiTrimRightChars_ReallyLong; 1950 VAR 1951 tmpResult : AnsiString; 1952 tmpValue : AnsiString; 1953 BEGIN 1954 tmpValue := '0123456789'; 1955 tmpValue := tmpValue + tmpValue; 1956 tmpValue := tmpValue + tmpValue; 1957 tmpValue := tmpValue + tmpValue; 1958 tmpValue := tmpValue + tmpValue; 1959 tmpValue := tmpValue + tmpValue; 1960 assertEqualsInt('testAnsiTrimRightChars_ReallyLong', 320, Length(tmpValue)); 1961 1962 tmpResult := AnsiStrTrimRightChars(tmpValue, ['8', '9']); 1963 1964 assertEqualsInt('testAnsiTrimRightChars_ReallyLong', 318, Length(tmpResult)); 1965 END; 1966 1967 1968 // ------------------------------------------------------------------- 1969 1970 PROCEDURE testAnsiTrimChars_Empty; 1971 VAR 1972 tmpResult : AnsiString; 1973 tmpValue : AnsiString; 1974 BEGIN 1975 tmpValue := ''; 1976 tmpResult := AnsiStrTrimChars(tmpValue, ['b', 'x']); 1977 1978 assertEqualsAnsiString('testAnsiTrimChars_Empty', '', tmpResult); 1979 END; 1980 1981 1982 PROCEDURE testAnsiTrimChars_RemoveAll; 1983 VAR 1984 tmpResult : AnsiString; 1985 tmpValue : AnsiString; 1986 BEGIN 1987 tmpValue := 'bxxxbx'; 1988 tmpResult := AnsiStrTrimChars(tmpValue, ['b', 'x']); 1989 1990 assertEqualsAnsiString('testAnsiTrimChars_RemoveAll', '', tmpResult); 1991 END; 1992 1993 1994 PROCEDURE testAnsiTrimChars_OneLeftFromLeft; 1995 VAR 1996 tmpResult : AnsiString; 1997 tmpValue : AnsiString; 1998 BEGIN 1999 tmpValue := 'bxa'; 2000 tmpResult := AnsiStrTrimChars(tmpValue, ['b', 'x']); 2001 2002 assertEqualsAnsiString('testAnsiTrimChars_OneLeftFromLeft', 'a', tmpResult); 2003 END; 2004 2005 2006 PROCEDURE testAnsiTrimChars_OneLeftFromRight; 2007 VAR 2008 tmpResult : AnsiString; 2009 tmpValue : AnsiString; 2010 BEGIN 2011 tmpValue := 'abx'; 2012 tmpResult := AnsiStrTrimChars(tmpValue, ['b', 'x']); 2013 2014 assertEqualsAnsiString('testAnsiTrimChars_OneLeftFromRight', 'a', tmpResult); 2015 END; 2016 2017 2018 PROCEDURE testAnsiTrimChars_LeftOnly; 2019 VAR 2020 tmpResult : AnsiString; 2021 tmpValue : AnsiString; 2022 BEGIN 2023 tmpValue := 'bxbxxay'; 2024 tmpResult := AnsiStrTrimChars(tmpValue, ['b', 'x']); 2025 2026 assertEqualsAnsiString('testAnsiTrimChars_LeftOnly', 'ay', tmpResult); 2027 END; 2028 2029 2030 PROCEDURE testAnsiTrimChars_RightOnly; 2031 VAR 2032 tmpResult : AnsiString; 2033 tmpValue : AnsiString; 2034 BEGIN 2035 tmpValue := 'aybxbxx'; 2036 tmpResult := AnsiStrTrimChars(tmpValue, ['b', 'x']); 2037 2038 assertEqualsAnsiString('testAnsiTrimChars_LeftOnly', 'ay', tmpResult); 2039 END; 2040 2041 2042 PROCEDURE testAnsiTrimChars_CharsInside; 2043 VAR 2044 tmpResult : AnsiString; 2045 tmpValue : AnsiString; 2046 BEGIN 2047 tmpValue := 'bxabxvvx'; 2048 tmpResult := AnsiStrTrimChars(tmpValue, ['b', 'x']); 2049 2050 assertEqualsAnsiString('testAnsiTrimChars_CharsInside', 'abxvv', tmpResult); 2051 END; 2052 2053 2054 PROCEDURE testAnsiTrimChars_Nothing; 2055 VAR 2056 tmpResult : AnsiString; 2057 tmpValue : AnsiString; 2058 BEGIN 2059 tmpValue := 'acdef'; 2060 tmpResult := AnsiStrTrimChars(tmpValue, ['b', 'x']); 2061 2062 assertEqualsAnsiString('testAnsiTrimChars_Nothing', 'acdef', tmpResult); 2063 END; 2064 2065 2066 PROCEDURE testAnsiTrimChars_ReallyLong; 2067 VAR 2068 tmpResult : AnsiString; 2069 tmpValue : AnsiString; 2070 BEGIN 2071 tmpValue := '0123456789'; 2072 tmpValue := tmpValue + tmpValue; 2073 tmpValue := tmpValue + tmpValue; 2074 tmpValue := tmpValue + tmpValue; 2075 tmpValue := tmpValue + tmpValue; 2076 tmpValue := tmpValue + tmpValue; 2077 assertEqualsInt('testAnsiTrimChars_ReallyLong', 320, Length(tmpValue)); 2078 2079 tmpResult := AnsiStrTrimChars(tmpValue, ['8', '9', '0', '1']); 2080 2081 assertEqualsInt('testAnsiTrimChars_ReallyLong', 316, Length(tmpResult)); 2082 END; 2083 2084 2085 // ------------------------------------------------------------------- 2086 2087 2088 PROCEDURE testAnsiTrim; 2089 VAR 2090 tmpResult : String; 2091 tmpValue : AnsiString; 2092 BEGIN 2093 tmpValue := ' a bc '; 2094 tmpResult := AnsiStrTrim(tmpValue); 2095 2096 assertEqualsAnsiString('testAnsiTrim', 'a bc', tmpResult); 2097 END; 2098 2099 2100 PROCEDURE testAnsiTrim_ReallyLong; 2101 VAR 2102 tmpResult : AnsiString; 2103 tmpValue : AnsiString; 2104 BEGIN 2105 tmpValue := '0123456789'; 2106 tmpValue := tmpValue + tmpValue; 2107 tmpValue := tmpValue + tmpValue; 2108 tmpValue := tmpValue + tmpValue; 2109 tmpValue := tmpValue + tmpValue; 2110 tmpValue := tmpValue + tmpValue; 2111 tmpValue := ' ' + tmpValue + ' '; 2112 assertEqualsInt('testAnsiTrim_ReallyLong', 326, Length(tmpValue)); 2113 2114 tmpResult := AnsiStrTrim(tmpValue); 2115 2116 assertEqualsInt('testAnsiTrim_ReallyLong', 320, Length(tmpResult)); 2117 END; 2118 2119 2120 // ------------------------------------------------------------------- 1677 2121 1678 2122 … … 1836 2280 result.add(@testStrExtractStringsQuoted_ManyParts); 1837 2281 2282 result.add(@testCaseInsensitivePos_Empty); 2283 result.add(@testCaseInsensitivePos_EmptyPart); 2284 result.add(@testCaseInsensitivePos_EmptyString); 2285 result.add(@testCaseInsensitivePos_PartLarger); 2286 result.add(@testCaseInsensitivePos_AtLeft); 2287 result.add(@testCaseInsensitivePos_Middle); 2288 result.add(@testCaseInsensitivePos_AtRight); 2289 result.add(@testCaseInsensitivePos); 2290 2291 // -------------------- 2292 // ---- AnsiString ---- 2293 // -------------------- 2294 2295 2296 result.add(@testAnsiTrimLeftChars_Empty); 2297 result.add(@testAnsiTrimLeftChars_RemoveAll); 2298 result.add(@testAnsiTrimLeftChars_OneLeft); 2299 result.add(@testAnsiTrimLeftChars_LeftOnly); 2300 result.add(@testAnsiTrimLeftChars_CharsInside); 2301 result.add(@testAnsiTrimLeftChars_Nothing); 2302 result.add(@testAnsiTrimLeftChars_ReallyLong); 2303 2304 result.add(@testAnsiTrimRightChars_Empty); 2305 result.add(@testAnsiTrimRightChars_RemoveAll); 2306 result.add(@testAnsiTrimRightChars_OneLeft); 2307 result.add(@testAnsiTrimRightChars_RightOnly); 2308 result.add(@testAnsiTrimRightChars_CharsInside); 2309 result.add(@testAnsiTrimRightChars_Nothing); 2310 result.add(@testAnsiTrimRightChars_ReallyLong); 2311 2312 result.add(@testAnsiTrimChars_Empty); 2313 result.add(@testAnsiTrimChars_RemoveAll); 2314 result.add(@testAnsiTrimChars_OneLeftFromLeft); 2315 result.add(@testAnsiTrimChars_OneLeftFromRight); 2316 result.add(@testAnsiTrimChars_LeftOnly); 2317 result.add(@testAnsiTrimChars_RightOnly); 2318 result.add(@testAnsiTrimChars_CharsInside); 2319 result.add(@testAnsiTrimChars_Nothing); 2320 result.add(@testAnsiTrimChars_ReallyLong); 2321 2322 result.add(@testAnsiTrim); 2323 result.add(@testAnsiTrim_ReallyLong); 2324 2325 1838 2326 END; 1839 2327
Note:
See TracChangeset
for help on using the changeset viewer.