From: Jean Privat Date: Thu, 14 May 2015 23:36:39 +0000 (-0400) Subject: Merge: Fix nitunit for `String::format` X-Git-Tag: v0.7.5~51 X-Git-Url: http://nitlanguage.org?hp=-c Merge: Fix nitunit for `String::format` Since the code block was badly indented, it was not tested by `nitunit`. Once the indentation was corrected, `nitunit` found that the test was failing. Signed-off-by: Alexandre Terrasa Pull-Request: #1342 Reviewed-by: Lucas Bajolet Reviewed-by: Jean Privat --- 7c2fe92fea76266df601bb57bcfeee947319c53d diff --combined lib/standard/string.nit index 5e57fa4,b10affb..2344659 --- a/lib/standard/string.nit +++ b/lib/standard/string.nit @@@ -60,7 -60,7 +60,7 @@@ abstract class Tex fun substring(from: Int, count: Int): SELFTYPE is abstract # Iterates on the substrings of self if any - fun substrings: Iterator[Text] is abstract + fun substrings: Iterator[FlatText] is abstract # Is the current Text empty (== "") # @@@ -345,7 -345,7 +345,7 @@@ end return true end - + # Removes the whitespaces at the beginning of self # # assert " \n\thello \n\t".l_trim == "hello \n\t" @@@ -851,8 -851,8 +851,8 @@@ # Gives the formatted string back as a Nit string with `args` in place # - # assert "This %1 is a %2.".format("String", "formatted String") == "This String is a formatted String" - # assert "\\%1 This string".format("String") == "\\%1 This string" + # assert "This %1 is a %2.".format("String", "formatted String") == "This String is a formatted String." + # assert "\\%1 This string".format("String") == "\\%1 This string" fun format(args: Object...): String do var s = new Array[Text] var curr_st = 0 @@@ -882,27 -882,6 +882,27 @@@ return s.to_s end + # Copies `n` bytes from `self` at `src_offset` into `dest` starting at `dest_offset` + # + # Basically a high-level synonym of NativeString::copy_to + # + # REQUIRE: `n` must be large enough to contain `len` bytes + # + # var ns = new NativeString(8) + # "Text is String".copy_to_native(ns, 8, 2, 0) + # assert ns.to_s_with_length(8) == "xt is St" + # + fun copy_to_native(dest: NativeString, n, src_offset, dest_offset: Int) do + var mypos = src_offset + var itspos = dest_offset + while n > 0 do + dest[itspos] = self.chars[mypos] + itspos += 1 + mypos += 1 + n -= 1 + end + end + end # All kinds of array-based text representations. @@@ -947,10 -926,6 +947,10 @@@ abstract class FlatTex end redef fun flatten do return self + + redef fun copy_to_native(dest, n, src_offset, dest_offset) do + items.copy_to(dest, n, src_offset, dest_offset) + end end # Abstract class for the SequenceRead compatible @@@ -1011,7 -986,7 +1011,7 @@@ abstract class Strin # assert "helloworld".insert_at(" ", 5) == "hello world" fun insert_at(s: String, pos: Int): SELFTYPE is abstract - redef fun substrings: Iterator[String] is abstract + redef fun substrings is abstract # Returns a reversed version of self # @@@ -1030,7 -1005,7 +1030,7 @@@ # assert "Hello World!".to_lower == "hello world!" fun to_lower : SELFTYPE is abstract - # Takes a camel case `self` and converts it to snake case + # Takes a camel case `self` and converts it to snake case # # assert "randomMethodId".to_snake_case == "random_method_id" # @@@ -1080,11 -1055,11 +1080,11 @@@ prev_is_upper = false end end - + return new_str.to_s end - # Takes a snake case `self` and converts it to camel case + # Takes a snake case `self` and converts it to camel case # # assert "random_method_id".to_camel_case == "randomMethodId" #