| import library Strings; |
| |
| modeltype ECORE uses 'http://www.eclipse.org/emf/2002/Ecore'; |
| modeltype QVT uses qvtoperational('http://www.eclipse.org/QVT/1.0.0/Operational'); |
| |
| |
| transformation stdlibString(in m : ECORE, out x : ECORE); |
| |
| main() { |
| assert fatal ('ab'.length() = 2); |
| assert fatal ('ab'.size() = 2); |
| assert fatal ('12345'.substringBefore('34') = '12'); |
| assert fatal ('12345'.substringAfter('12') = '345'); |
| assert fatal ('abc'.toUpper() = 'ABC'); |
| assert fatal ('ABC'.toLower() = 'abc'); |
| assert fatal ('abc'.firstToUpper() = 'Abc'); |
| assert fatal ('abc'.lastToUpper() = 'abC'); |
| assert fatal ('abc'.indexOf('abc') = 1); |
| assert fatal ('abc'.indexOf('b') = 2); |
| assert fatal ('abc'.indexOf('x') = 0); |
| |
| var nullStr : String := null; |
| assert fatal ('abc'.endsWith('bc') and nullStr.endsWith('a').oclIsInvalid()); |
| assert fatal ('abc'.startsWith('ab') and nullStr.startsWith('ab').oclIsInvalid()); |
| |
| |
| assert fatal (' abc '.trim() = 'abc'); |
| assert fatal (' x vh y '.normalizeSpace() = 'x vh y'); |
| assert fatal ('ababa'.replace('ab', 'xy') = 'xyxya'); |
| assert fatal ('aaaab'.match('a*b')); |
| assert fatal ('aBc'.equalsIgnoreCase('AbC')); |
| assert fatal ('a1212c'.find('12') = 2); |
| assert fatal ('a1212c'.rfind('12') = 4); |
| |
| assert fatal ('aa1234aa'.isQuoted('aa') and 'aa1234'.isQuoted('aa') = false); |
| assert fatal ('1234'.quotify('aa') = 'aa1234aa' and ''.quotify('aa') = 'aaaa'); |
| assert fatal ('aa1234aa'.unquotify('aa') = '1234' and ''.unquotify('aaaa') = ''); |
| |
| assert fatal ('true'.matchBoolean(true) and '1'.matchBoolean(true) |
| and '0'.matchBoolean(false) and 'false'.matchBoolean(false)); |
| -- check case-insensitiveness |
| assert fatal ('false'.matchBoolean(false)); |
| assert fatal ('False'.matchBoolean(false)); |
| assert fatal ('TRUE'.matchBoolean(true)); |
| assert fatal ('true'.matchBoolean(true)); |
| |
| |
| assert fatal ('12'.matchInteger(12) and '1'.matchInteger(20) = false and 'x'.matchInteger(12) = false); |
| assert fatal ('12.0'.matchFloat(12) and '1.2'.matchFloat(20) = false and 'x'.matchFloat(12.3) = false); |
| --assert fatal ('1abc'.matchIdentifier() |
| assert fatal ('true'.asBoolean() and '1'.asBoolean() |
| and '0'.asBoolean() = false and 'false'.asBoolean() = false and 'ddd'.asBoolean() = null); |
| assert fatal ('123'.asInteger() = 123 and 'abc'.asInteger() = null); |
| assert fatal ('123'.asFloat() = 123.0 and 'abc'.asFloat() = null); |
| |
| |
| -- assert fatal (); |
| assert fatal (String.getStrCounter('Foo') = null); |
| assert fatal (String.startStrCounter('Foo') = null); |
| assert fatal (String.getStrCounter('Foo') = 0); |
| assert fatal (String.incrStrCounter('Foo') = 1); |
| assert fatal (String.incrStrCounter('Foo') = 2); |
| assert fatal ('Foo'.addSuffixNumber() = 'Foo2'); |
| assert fatal ('Foo'.addSuffixNumber() = 'Foo3'); |
| |
| assert fatal (String.startStrCounter('Foo') = null); |
| assert fatal (String.incrStrCounter('Foo') = 1); |
| |
| assert fatal (String.startStrCounter('Bar') = null); |
| assert fatal (String.incrStrCounter('Bar') = 1); |
| assert fatal (String.restartAllStrCounter() = null); |
| assert fatal (String.getStrCounter('Foo') = 0); |
| assert fatal (String.getStrCounter('Bar') = 0); |
| } |