def testSplit(self): """ Strings can be split. """ s = StrObject(u"first second") result = s.call(u"split", [StrObject(u" ")]) pieces = [obj._s for obj in unwrapList(result)] self.assertEqual(pieces, [u"first", u"second"])
def testContainsTrue(self): """ String containment tests have true positives. """ haystack = StrObject(u"needle in a haystack") needle = StrObject(u"needle") result = haystack.call(u"contains", [needle]) self.assertTrue(result.isTrue())
def testMakeIterator(self): """ Strings are iterable. """ s = StrObject(u"cs") iterator = s.call(u"_makeIterator", []) with Ejector() as ej: result = iterator.call(u"next", [ej]) objs = unwrapList(result) self.assertEqual(objs[0].getInt(), 0) self.assertEqual(objs[1]._c, u'c') result = iterator.call(u"next", [ej]) objs = unwrapList(result) self.assertEqual(objs[0].getInt(), 1) self.assertEqual(objs[1]._c, u's') self.assertRaises(Ejecting, iterator.call, u"next", [ej])
def testToUpperCase(self): s = StrObject(u"lower") result = s.call(u"toUpperCase", []) self.assertEqual(result._s, u"LOWER")
def testToLowerCaseUnicode(self): s = StrObject(u"Α And Ω") result = s.call(u"toLowerCase", []) self.assertEqual(result._s, u"α and ω")
def testSliceStartStop(self): s = StrObject(u"the lime in the coconut") result = s.call(u"slice", [IntObject(4), IntObject(8)]) self.assertEqual(result._s, u"lime")
def testSliceStart(self): s = StrObject(u"slice of lemon") result = s.call(u"slice", [IntObject(9)]) self.assertEqual(result._s, u"lemon")
def testToUpperCaseUnicode(self): s = StrObject(u"¡Holá!") result = s.call(u"toUpperCase", []) self.assertEqual(result._s, u"¡HOLÁ!")
def testTrimSpaces(self): s = StrObject(u" ") result = s.call(u"trim", []) self.assertEqual(result._s, u"")
def testIndexOf(self): s = StrObject(u"needle") result = s.call(u"indexOf", [StrObject(u"e")]) self.assertEqual(result.getInt(), 1)
def testLastIndexOfFail(self): s = StrObject(u"needle") result = s.call(u"lastIndexOf", [StrObject(u"x")]) self.assertEqual(result.getInt(), -1)
def testTrimWord(self): s = StrObject(u" testing ") result = s.call(u"trim", []) self.assertEqual(result._s, u"testing")
def testGet(self): s = StrObject(u"index") result = s.call(u"get", [IntObject(2)]) self.assertEqual(result._c, u'd')
def testJoin(self): s = StrObject(u"|") result = s.call( u"join", [ConstList([StrObject(u"5"), StrObject(u"42")])]) self.assertEqual(result._s, u"5|42")
def testJoin(self): s = StrObject(u"|") result = s.call(u"join", [ConstList([StrObject(u"5"), StrObject(u"42")])]) self.assertEqual(result._s, u"5|42")