List <JObject> mapReduce(FileBasedMapperWriters wtrs, List <JObject> list) { var ret = new List <JObject>(); foreach (var o in list) { wtrs.Write(o); } foreach (var o in wtrs) { ret.Add(o); } Assert.AreEqual(list.Count, ret.Count); return(ret); }
public void TestMapReduce() { var list = new List <JObject>(); list.Add(Create(1, "22", 23)); list.Add(Create("22", 23)); list.Add(Create(1, "22")); list.Add(Create(1, null, 23)); list.Add(Create(1, "", 23)); list.Add(Create("BB", 23)); list.Add(Create("Bb", 23)); list.Add(Create("bB", 23)); list.Add(Create("c", 23)); list.Add(Create("C", 23)); var wtrs = new FileBasedMapperWriters(hasher3, cmp3, Path.Combine(dir, "data"), "foobar", 1, true, false); var outList = dump(mapReduce(wtrs, list), "1 file"); wtrs.Dispose(); Assert.AreEqual("{'k2':'22','k3':23}", _tos(outList[0])); Assert.AreEqual("{'k1':1,'k2':'22','k3':23}", _tos(outList[9])); wtrs = new FileBasedMapperWriters(hasher3, cmp3, Path.Combine(dir, "data"), "foobar", 3, true, false); outList = dump(mapReduce(wtrs, list), "3 files"); Assert.AreEqual("{'k2':'22','k3':23}", _tos(outList[0])); Assert.AreEqual("{'k2':'bB','k3':23}", _tos(outList[9])); wtrs.Dispose(); wtrs = new FileBasedMapperWriters(hasher3, cmp3, Path.Combine(dir, "data"), "foobar", 1, false, false); outList = dump(mapReduce(wtrs, list), "1 file"); wtrs.Dispose(); Assert.AreEqual("{'k2':'22','k3':23}", _tos(outList[0])); Assert.AreEqual("{'k1':1,'k2':'22','k3':23}", _tos(outList[9])); wtrs = new FileBasedMapperWriters(hasher3, cmp3, Path.Combine(dir, "data"), "foobar", 3, false, false); outList = dump(mapReduce(wtrs, list), "1 file"); wtrs.Dispose(); Assert.AreEqual("{'k2':'22','k3':23}", _tos(outList[0])); Assert.AreEqual("{'k2':'bB','k3':23}", _tos(outList[9])); }