// Test decimal updates (function() { "use strict"; var col = db.decimal_updates; col.drop(); // Insert some sample data. var docs = [ {'a': NumberDecimal("1.0")}, {'a': NumberDecimal("0.0")}, {'a': NumberDecimal("1.00")}, {'a': NumberLong("1")}, {'a': 1} ]; assert.writeOK(col.insert(docs), "Initial insertion failed"); assert.writeOK(col.update({}, {$inc: {'a': NumberDecimal("10")}}, {multi: true}), "update $inc failed"); assert.eq(col.find({a: 11}).count(), 4, "count after $inc incorrect"); assert.writeOK(col.update({}, {$inc: {'a': NumberDecimal("0")}}, {multi: true}), "update $inc 0 failed"); assert.eq(col.find({a: 11}).count(), 4, "count after $inc 0 incorrect"); col.drop(); assert.writeOK(col.insert(docs), "Second insertion failed"); assert.writeOK(col.update({}, {$mul: {'a': NumberDecimal("1")}}, {multi: true}), "update $mul failed"); assert.eq(col.find({a: 1}).count(), 4, "count after $mul incorrect"); assert.writeOK(col.update({}, {$mul: {'a': NumberDecimal("2")}}, {multi: true}), "update $mul 2 failed"); assert.eq(col.find({a: 2}).count(), 4, "count after $mul incorrect"); assert.writeOK(col.update({}, {$mul: {'a': NumberDecimal("0")}}, {multi: true}), "update $mul 0 failed"); assert.eq(col.find({a: 0}).count(), 5, "count after $mul 0 incorrect"); assert.writeError(col.update({}, {$bit: {'a': {and: 1}}}, {multi: true}), "$bit should fail"); }());