@@ -1124,7 +1124,7 @@ public String apply(Map<String, Object> item) {
11241124 return item .get ("name" ) + " is " + item .get ("age" );
11251125 }
11261126 })
1127- .first ().value ().toString ();
1127+ .first ().item ().toString ();
11281128 assertEquals ("moe is 21" , youngest );
11291129 }
11301130
@@ -1176,7 +1176,7 @@ public Map<String, Object> apply(Map<String, Object> accum, String item) {
11761176 },
11771177 new LinkedHashMap <String , Object >()
11781178 )
1179- .value ();
1179+ .item (). toString ();
11801180 assertEquals ("{I'm=2, a=2, lumberjack=2, and=4, okay=2, I=2, sleep=1, all=4, night=2, work=1, day=2, He's=1,"
11811181 + " he's=1, He=1, sleeps=1, he=1, works=1}" , result );
11821182 }
@@ -1229,11 +1229,69 @@ public Map<String, Object> apply(Map<String, Object> accum, String item) {
12291229 },
12301230 new LinkedHashMap <String , Object >()
12311231 )
1232- .value ();
1232+ .item (). toString ();
12331233 assertEquals ("{day=2, all=4, works=1, he=1, and=4, night=2, sleeps=1,"
12341234 + " He=1, okay=2, he's=1, lumberjack=2, a=2, He's=1, work=1, I=2, sleep=1, I'm=2}" , result );
12351235 }
12361236
1237+ /*
1238+ var doctors = [
1239+ { number: 1, actor: "William Hartnell", begin: 1963, end: 1966 },
1240+ { number: 9, actor: "Christopher Eccleston", begin: 2005, end: 2005 },
1241+ { number: 10, actor: "David Tennant", begin: 2005, end: 2010 }
1242+ ];
1243+ _.chain(doctors)
1244+ .filter(function(doctor) {
1245+ return doctor.begin > 2000;
1246+ })
1247+ .reject(function(doctor) {
1248+ return doctor.begin > 2009;
1249+ })
1250+ .map(function(doctor) {
1251+ return {
1252+ doctorNumber: "#" + doctor.number,
1253+ playedBy: doctor.actor,
1254+ yearsPlayed: doctor.end - doctor.begin + 1
1255+ };
1256+ })
1257+ .value();
1258+
1259+ => [{ doctorNumber: "#9", playedBy: "Christopher Eccleston", yearsPlayed: 1 }]
1260+ */
1261+ @ Test
1262+ public void chain4 () throws Exception {
1263+ final List <Map <String , Object >> doctors = new ArrayList <Map <String , Object >>() {{
1264+ add (new LinkedHashMap <String , Object >() {{ put ("number" , 1 ); put ("actor" , "William Hartnell" ); put ("begin" , 1963 ); put ("end" , 1966 ); }});
1265+ add (new LinkedHashMap <String , Object >() {{ put ("number" , 9 ); put ("actor" , "Christopher Eccleston" ); put ("begin" , 2005 ); put ("end" , 2005 ); }});
1266+ add (new LinkedHashMap <String , Object >() {{ put ("number" , 10 ); put ("actor" , "David Tennant" ); put ("begin" , 2005 ); put ("end" , 2010 ); }});
1267+ }};
1268+ final String result = _ .chain (doctors )
1269+ .filter (
1270+ new Predicate <Map <String , Object >>() {
1271+ public Boolean apply (Map <String , Object > item ) {
1272+ return (Integer ) item .get ("begin" ) > 2000 ;
1273+ }
1274+ })
1275+ .reject (
1276+ new Predicate <Map <String , Object >>() {
1277+ public Boolean apply (Map <String , Object > item ) {
1278+ return (Integer ) item .get ("end" ) > 2009 ;
1279+ }
1280+ })
1281+ .map (
1282+ new Function1 <Map <String , Object >, Map <String , Object >>() {
1283+ public Map <String , Object > apply (final Map <String , Object > item ) {
1284+ return new LinkedHashMap <String , Object >() {{
1285+ put ("doctorNumber" , "#" + item .get ("number" ));
1286+ put ("playedBy" , item .get ("actor" ));
1287+ put ("yearsPlayed" , (Integer ) item .get ("end" ) - (Integer ) item .get ("begin" ) + 1 );
1288+ }};
1289+ }
1290+ })
1291+ .value ().toString ();
1292+ assertEquals ("[{doctorNumber=#9, playedBy=Christopher Eccleston, yearsPlayed=1}]" , result );
1293+ }
1294+
12371295/*
12381296var compiled = _.template("hello: <%= name %>");
12391297compiled({name: 'moe'});
@@ -1418,7 +1476,7 @@ public void compareStrings() throws Exception {
14181476 public void concat () throws Exception {
14191477 assertEquals (asList (1 , 2 , 3 , 4 ), asList (_ .concat (new Integer [] {1 , 2 }, new Integer [] {3 , 4 })));
14201478 assertEquals (asList (1 , 2 , 3 , 4 ), _ .concat (asList (1 , 2 ), asList (3 , 4 )));
1421- assertEquals ("[1, 2, 3, 4]" , _ .chain (asList (1 , 2 )).concat (asList (3 , 4 )).value ());
1479+ assertEquals ("[1, 2, 3, 4]" , _ .chain (asList (1 , 2 )).concat (asList (3 , 4 )).value (). toString () );
14221480 assertEquals (asList (1 , 2 , 3 , 4 ), asList (_ .concat (new Integer [] {1 , 2 }, new Integer [] {3 }, new Integer [] {4 })));
14231481 assertEquals (asList (1 , 2 , 3 , 4 ), _ .concat (asList (1 , 2 ), asList (3 ), asList (4 )));
14241482 }
0 commit comments