mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
Mw_parse.Apos: Add more tests
This commit is contained in:
@@ -19,9 +19,8 @@ package gplx.langs.phps.utls; import gplx.*; import gplx.langs.*; import gplx.la
|
||||
import org.junit.*; import gplx.core.tests.*;
|
||||
public class Php_preg___tst {
|
||||
private final Php_preg___fxt fxt = new Php_preg___fxt();
|
||||
@Test public void Split() {
|
||||
fxt.Test__split("a''b''c", "''", Bool_.N, "a", "''", "b", "''", "c");
|
||||
}
|
||||
@Test public void Basic() {fxt.Test__split("a''b''c" , "''", Bool_.Y, "a", "''", "b", "''", "c");}
|
||||
@Test public void Extend() {fxt.Test__split("a'''b'''c" , "''", Bool_.Y, "a", "'''", "b", "'''", "c");}
|
||||
}
|
||||
class Php_preg___fxt {
|
||||
public void Test__split(String src, String dlm, boolean extend, String... expd) {Test__split(src, 0, String_.Len(src), dlm, extend, expd);}
|
||||
|
||||
@@ -17,11 +17,23 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.langs.phps.utls; import gplx.*; import gplx.langs.*; import gplx.langs.phps.*;
|
||||
public class Php_str_ {
|
||||
public static byte[] Substr(byte[] src, int bgn) {
|
||||
return src;
|
||||
}
|
||||
public static byte[] Substr(byte[] src, int bgn) {return Substr(src, bgn, src.length);}
|
||||
public static byte[] Substr(byte[] src, int bgn, int len) {
|
||||
return Bry_.Mid(src, bgn, bgn + len);
|
||||
int src_len = src.length;
|
||||
if (bgn < 0) bgn = src_len + bgn; // handle negative
|
||||
if (bgn < 0) bgn = 0; // handle out of bounds; EX: ("a", -1, -1)
|
||||
int end = len < 0 ? src_len + len : bgn + len;
|
||||
if (end > src.length) end = src.length;; // handle out of bounds;
|
||||
return Bry_.Mid(src, bgn, end);
|
||||
}
|
||||
public static byte Substr_byte(byte[] src, int bgn) {return Substr_byte(src, bgn, src.length);}
|
||||
public static byte Substr_byte(byte[] src, int bgn, int len) {
|
||||
int src_len = src.length;
|
||||
if (bgn < 0) bgn = src_len + bgn; // handle negative
|
||||
if (bgn < 0) bgn = 0; // handle out of bounds; EX: ("a", -1, -1)
|
||||
int end = len < 0 ? src_len + len : bgn + len;
|
||||
if (end > src.length) end = src.length;; // handle out of bounds;
|
||||
return src[bgn];
|
||||
}
|
||||
public static int Strspn_fwd__byte(byte[] src, byte find, int bgn, int max, int src_len) {
|
||||
if (max == -1) max = src_len;
|
||||
|
||||
@@ -39,6 +39,10 @@ public class Php_str___tst {
|
||||
fxt.Test__strspn_bwd__space_or_tab(" a", 4, -1, 4); // bgn
|
||||
fxt.Test__strspn_bwd__space_or_tab(" a", 4, 2, 2); // max
|
||||
}
|
||||
@Test public void Substr__bgn_is_neg() {
|
||||
fxt.Test__substr("abcde" , -1, "e");
|
||||
fxt.Test__substr("abcde" , -3, -1, "cd");
|
||||
}
|
||||
}
|
||||
class Php_str___fxt {
|
||||
public void Test__strspn_fwd__byte(String src_str, byte find, int bgn, int max, int expd) {
|
||||
@@ -55,4 +59,8 @@ class Php_str___fxt {
|
||||
public void Test__strspn_bwd__space_or_tab(String src_str, int bgn, int max, int expd) {
|
||||
Gftest.Eq__int(expd, Php_str_.Strspn_bwd__space_or_tab(Bry_.new_u8(src_str), bgn, max));
|
||||
}
|
||||
public void Test__substr(String src_str, int bgn, String expd) {Test__substr(src_str, bgn, String_.Len(src_str), expd);}
|
||||
public void Test__substr(String src_str, int bgn, int len, String expd) {
|
||||
Gftest.Eq__str(expd, Php_str_.Substr(Bry_.new_u8(src_str), bgn, len));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user