BEGIN; SELECT plan(18); SELECT can('metabib', ARRAY['trim_trailing_punctuation'], 'metabib.trim_trailing_punctuation function exists'); SELECT is( metabib.trim_trailing_punctuation(''), '', 'Empty string'); SELECT is( metabib.trim_trailing_punctuation('X,'), 'X', 'Eliminate comma A'); SELECT is( metabib.trim_trailing_punctuation('Smith, John,'), 'Smith, John', 'Eliminate comma B'); SELECT is( metabib.trim_trailing_punctuation('X.'), 'X', 'Initial w/o preceding space (period)'); SELECT is( metabib.trim_trailing_punctuation('X@'), 'X@', 'Initial w/o preceding space (other)'); SELECT is( metabib.trim_trailing_punctuation('Smith, John'), 'Smith, John', 'Name no trailing punct A'); SELECT is( metabib.trim_trailing_punctuation('Saki'), 'Saki', 'Name no trailing punct B'); SELECT is( metabib.trim_trailing_punctuation('Smith, John.'), 'Smith, John', 'Chop trailing period'); SELECT is( metabib.trim_trailing_punctuation('Public, John Q.'), 'Public, John Q.', 'Retain trailing period'); SELECT is( metabib.trim_trailing_punctuation('Public, John Q,'), 'Public, John Q', 'Eliminate comma C'); SELECT is( metabib.trim_trailing_punctuation('Public, John, Ph.D.'), 'Public, John, Ph.D.', 'Retain trailing period in abbr.'); SELECT is( metabib.trim_trailing_punctuation('Washington DC, U.S.'), 'Washington DC, U.S.', 'Retain trailing period in abbr.'); SELECT is( metabib.trim_trailing_punctuation('(FTC).'), '(FTC)', 'Trailing period'); SELECT is( metabib.trim_trailing_punctuation('A title with no SoR /'), 'A title with no SoR', 'Remove erroneous trailing slash'); SELECT is( metabib.trim_trailing_punctuation('A title with no subtitle :'), 'A title with no subtitle', 'Remove erroneous trailing colon'); SELECT is( metabib.trim_trailing_punctuation('A title ;'), 'A title', 'Remove erroneous trailing semicolon'); SELECT is( metabib.trim_trailing_punctuation('A title ='), 'A title', 'Remove erroneous trailing equal'); SELECT * FROM finish(); ROLLBACK;