@@ -406,6 +406,37 @@ public handler TestRepeatChar()
406406 test "repeatchar (count)" when tCount is 3
407407end handler
408408
409+ handler TestReverse_Inplace(in pDesc as String, \
410+ in pForward as String, in pReverse as String)
411+
412+ variable tReversed
413+ put pForward into tReversed
414+
415+ reverse tReversed
416+ test diagnostic tReversed
417+ test "reverse in-place (" & pDesc & ")" when tReversed is pReverse
418+
419+ reverse tReversed
420+ test diagnostic tReversed
421+ test "rereverse in-place (" & pDesc & ")" when tReversed is pForward
422+ end handler
423+
424+ public handler TestReverse()
425+ TestReverse_Inplace("empty", "", "")
426+ TestReverse_Inplace("native, odd", "abc", "cba")
427+ TestReverse_Inplace("native, even", "abcd", "dcba")
428+ TestReverse_Inplace("trivial, odd", \
429+ "\u{039a}\u{03b1}\u{03bb}\u{03b7}\u{03bc}\u{03ad}\u{03c1}\u{03b1}!", \
430+ "!\u{03b1}\u{03c1}\u{03ad}\u{03bc}\u{03b7}\u{03bb}\u{03b1}\u{039a}")
431+ TestReverse_Inplace("trivial, even", \
432+ "\u{039a}\u{03b1}\u{03bb}\u{03b7}\u{03bc}\u{03ad}\u{03c1}\u{03b1}", \
433+ "\u{03b1}\u{03c1}\u{03ad}\u{03bc}\u{03b7}\u{03bb}\u{03b1}\u{039a}")
434+ TestReverse_Inplace("BMP variation selector, 1", "a\u{fe0e}", "a\u{fe0e}")
435+ TestReverse_Inplace("BMP variation selector, even", \
436+ "\u{2b55}\u{fe0f}\u{25ef}", "\u{25ef}\u{2b55}\u{fe0f}")
437+ TestReverse_Inplace("SMP, odd", "a\u{1d11e}c", "c\u{1d11e}a")
438+ end handler
439+
409440----------------------------------------------------------------
410441
411442handler TestCharWithCode_Negative()
0 commit comments