mongo/jstests/decimal/decimal_find_query.js

52 lines
1.7 KiB
JavaScript

// Find the decimal using query operators
let col = db.decimal_find_query;
col.drop();
// Insert some sample data.
assert.commandWorked(
col.insert([
{"decimal": NumberDecimal("0")},
{"decimal": NumberDecimal("0.00")},
{"decimal": NumberDecimal("-0")},
{"decimal": NumberDecimal("1.0")},
{"decimal": NumberDecimal("1.00")},
{"decimal": NumberDecimal("2.00")},
{"decimal": NumberDecimal("12345678901234.56789012345678901234")},
{"decimal": NumberDecimal("NaN")},
{"decimal": NumberDecimal("-NaN")},
{"decimal": NumberDecimal("Infinity")},
{"decimal": NumberDecimal("-Infinity")},
]),
"Initial insertion failed",
);
assert.eq(col.find({"decimal": {$eq: NumberDecimal("1")}}).count(), "2");
assert.eq(col.find({"decimal": {$lt: NumberDecimal("1.00000000000001")}}).count(), 6);
assert.eq(col.find({"decimal": {$gt: NumberDecimal("1.5")}}).count(), 3);
assert.eq(col.find({"decimal": {$gte: NumberDecimal("2.000")}}).count(), 3);
assert.eq(col.find({"decimal": {$lte: NumberDecimal("0.9999999999999999")}}).count(), 4);
assert.eq(
col.find({"decimal": {$nin: [NumberDecimal("Infinity"), NumberDecimal("-Infinity")]}}).count(),
9,
"Infinity count incorrect",
);
// Test $mod
col.drop();
assert.commandWorked(
col.insert([
{"decimal": NumberDecimal("0")},
{"decimal": NumberDecimal("0.00")},
{"decimal": NumberDecimal("-0")},
{"decimal": NumberDecimal("1.0")},
{"decimal": NumberDecimal("1.00")},
{"decimal": NumberDecimal("2.00")},
]),
"2 insertion failed",
);
assert.eq(col.find({"decimal": {$mod: [2, 0]}}).count(), 4, "$mod count incorrect");