Ignore:
Timestamp:
Apr 25, 2007, 10:26:44 AM (18 years ago)
Author:
RBRi
Message:

AnsiString functins added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NewView/unittests/StringUtilsUnitTests.pas

    r106 r110  
    55uses
    66  Classes,
     7  SysUtils,
    78  TestAssert,
    89  StringUtilsUnit;
     
    16751676  // ----------------------------------------------------------
    16761677
     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);
     1775END;
     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  // -------------------------------------------------------------------
    16772121
    16782122
     
    18362280    result.add(@testStrExtractStringsQuoted_ManyParts);
    18372281
     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
    18382326  END;
    18392327
Note: See TracChangeset for help on using the changeset viewer.