1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

v2.12.1.1

This commit is contained in:
gnosygnu
2015-12-06 23:12:52 -05:00
parent 097e6c7f80
commit 9509363f46
337 changed files with 3473 additions and 1917 deletions

View File

@@ -16,6 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
import gplx.core.bits.*;
import gplx.xowa.langs.msgs.*;
public class Scrib_lib_text implements Scrib_lib {
private final Scrib_lib_text__json_util json_util = new Scrib_lib_text__json_util();

View File

@@ -95,7 +95,8 @@ class Scrib_lib_text__json_util {
Json_kv json_kv = root.Get_at_as_kv(i);
String kv_str = json_kv.Key_as_str();
Object kv_val = Decode_obj(json_kv.Val());
decode_rslt_as_nde[i] = KeyVal_.new_(kv_str, kv_val);
int kv_int = Int_.parse_or(kv_str, Int_.Min_value);
decode_rslt_as_nde[i] = kv_int == Int_.Min_value ? KeyVal_.new_(kv_str, kv_val) : KeyVal_.int_(kv_int, kv_val); // use int_key if applicable; PAGE:it.s:Il_Re_Cervo; DATE:2015-12-06
}
return Bool_.Y_byte;
}
@@ -123,7 +124,10 @@ class Scrib_lib_text__json_util {
KeyVal[] rv = new KeyVal[len];
for (int i = 0; i < len; ++i) {
Json_kv itm = nde.Get_at_as_kv(i);
rv[i] = KeyVal_.new_(itm.Key_as_str(), Decode_obj(itm.Val()));
String kv_str = itm.Key_as_str();
int kv_int = Int_.parse_or(kv_str, Int_.Min_value);
Object kv_val = Decode_obj(itm.Val());
rv[i] = kv_int == Int_.Min_value ? KeyVal_.new_(kv_str, kv_val) : KeyVal_.int_(kv_int, kv_val); // use int_key if applicable; PAGE:it.s:Il_Re_Cervo; DATE:2015-12-06
}
return rv;
}

View File

@@ -215,6 +215,26 @@ public class Scrib_lib_text_json_tst {
)
);
}
@Test public void Decode__key__int() {
KeyVal[] kv_ary = (KeyVal[])json_fxt.Test_json_decode(fxt, lib
, Scrib_lib_text__json_util.Flag__none
, Json_doc.Make_str_by_apos
( "{ '1':"
, " { '11':'aa'"
, " }"
, ", '2':'b'"
, "}"
)
, KeyVal_.Ary
( KeyVal_.int_(1, KeyVal_.Ary
( KeyVal_.int_(11, "aa")
))
, KeyVal_.int_(2, "b")
)
);
Tfds.Eq(kv_ary[0].Key_as_obj(), 1);
Tfds.Eq(((KeyVal[])kv_ary[0].Val())[0].Key_as_obj(), 11);
}
}
class Scrib_lib_json_fxt {
private final Json_wtr wtr = new Json_wtr();
@@ -222,9 +242,10 @@ class Scrib_lib_json_fxt {
Test_json_decode(fxt, lib, Scrib_lib_text__json_util.Flag__none, json, obj);
Test_json_encode(fxt, lib, Scrib_lib_text__json_util.Flag__none, obj, json);
}
public void Test_json_decode(Scrib_invoke_func_fxt fxt, Scrib_lib_text lib, int flag, String raw, Object expd) {
public Object Test_json_decode(Scrib_invoke_func_fxt fxt, Scrib_lib_text lib, int flag, String raw, Object expd) {
Object actl = fxt.Test_scrib_proc_rv_as_obj(lib, Scrib_lib_text.Invk_jsonDecode, Object_.Ary(raw, flag));
Tfds.Eq_str_lines(To_str(expd), To_str(actl), raw);
return actl;
}
public void Test_json_encode(Scrib_invoke_func_fxt fxt, Scrib_lib_text lib, int flag, Object raw, String expd) {
fxt.Test_scrib_proc_str_ary(lib, Scrib_lib_text.Invk_jsonEncode, Object_.Ary(raw, flag), "1=" + String_.Replace(expd, "'", "\""));

View File

@@ -139,7 +139,7 @@ class Scrib_lib_wikibase_srl {
return (KeyVal[])rv.To_ary_and_clear(KeyVal.class);
}
private static KeyVal[] Srl_claims_prop_itm_core(String pid, Wdata_claim_itm_core itm) {
boolean snak_is_valued = itm.Snak_tid() != Wdata_dict_snak_tid.Tid_novalue;
boolean snak_is_valued = itm.Snak_tid() == Wdata_dict_snak_tid.Tid_value; // PURPOSE: was != Wdata_dict_snak_tid.Tid_novalue; PAGE:it.s:Autore:Anonimo DATE:2015-12-06
int snak_is_valued_adj = snak_is_valued ? 1 : 0;
KeyVal[] rv = new KeyVal[3 + snak_is_valued_adj];
if (snak_is_valued) // NOTE: novalue must not return slot (no datavalue node in json); PAGE:ru.w:Лимонов,_Эдуард_Вениаминович; DATE:2015-02-16; ALSO: sv.w:Joseph_Jaquet; DATE:2015-07-31
@@ -160,6 +160,6 @@ class Scrib_lib_wikibase_srl {
}
}
public static final String Key_type = "type", Key_value = "value";
private static final KeyVal[] Datavalue_somevalue = new KeyVal[] {KeyVal_.new_(Key_type, ""), KeyVal_.new_(Key_value, "")}; // NOTE: must return ""; null fails; EX:w:Joseph-François_Malgaigne; DATE:2014-04-07
private static final KeyVal[] Datavalue_somevalue = KeyVal_.Ary_empty; // changed to not return value-node; PAGE:it.s:Autore:Anonimo DATE:2015-12-06 // new KeyVal[] {KeyVal_.new_(Key_type, ""), KeyVal_.new_(Key_value, "")}; // NOTE: must return ""; null fails; EX:w:Joseph-François_Malgaigne; DATE:2014-04-07
private static final KeyVal[] Datavalue_novalue = KeyVal_.Ary_empty;
}

View File

@@ -144,7 +144,7 @@ public class Scrib_lib_wikibase_srl_tst {
, ""
);
}
@Test public void Claims_somevalue() { // PURPOSE: somevalue should always return value node; EX:w:Joseph-François_Malgaigne; DATE:2014-04-07
@Test public void Claims_somevalue() { // PURPOSE: changed to not return value-node; PAGE:it.s:Autore:Anonimo DATE:2015-12-06 // somevalue should always return value node; EX:w:Joseph-François_Malgaigne; DATE:2014-04-07;
fxt.Init_prop(fxt.Wdata_fxt().Make_claim_somevalue(2));
fxt.Test
( "claims:"
@@ -152,9 +152,6 @@ public class Scrib_lib_wikibase_srl_tst {
, " 1:"
, " id:'P2'"
, " mainsnak:"
, " datavalue:"
, " type:''"
, " value:''"
, " property:'P2'"
, " snaktype:'somevalue'"
, " datatype:'unknown'"