public void TestGroup()
{
_collection.RemoveAll();
_collection.Insert(new BsonDocument("x", 1));
_collection.Insert(new BsonDocument("x", 1));
_collection.Insert(new BsonDocument("x", 2));
_collection.Insert(new BsonDocument("x", 3));
_collection.Insert(new BsonDocument("x", 3));
_collection.Insert(new BsonDocument("x", 3));
var initial = new BsonDocument("count", 0);
var reduce = "function(doc, prev) { prev.count += 1 }";
var results = _collection.Group(Query.Null, "x", initial, reduce, null).ToArray();
Assert.AreEqual(3, results.Length);
Assert.AreEqual(1, results[0]["x"].ToInt32());
Assert.AreEqual(2, results[0]["count"].ToInt32());
Assert.AreEqual(2, results[1]["x"].ToInt32());
Assert.AreEqual(1, results[1]["count"].ToInt32());
Assert.AreEqual(3, results[2]["x"].ToInt32());
Assert.AreEqual(3, results[2]["count"].ToInt32());
}