mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2025-08-13 06:49:19 -04:00
Add unit tests for treatment of infinity primatives
This commit is contained in:
parent
0a68722b80
commit
1b44841034
3 changed files with 442 additions and 1 deletions
test/unit
114
test/unit/blocks_data_infinity.js
Normal file
114
test/unit/blocks_data_infinity.js
Normal file
|
@ -0,0 +1,114 @@
|
|||
const test = require('tap').test;
|
||||
const Data = require('../../src/blocks/scratch3_data');
|
||||
|
||||
const blocks = new Data();
|
||||
|
||||
const lists = {};
|
||||
const util = {
|
||||
target: {
|
||||
lookupOrCreateList (id, name) {
|
||||
if (!(name in lists)) {
|
||||
lists[name] = {value: []};
|
||||
}
|
||||
return lists[name];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
test('List with postive infinity primitive contains postive infinity', t => {
|
||||
lists.list = {value: [Infinity]};
|
||||
let args = {ITEM: Infinity, LIST: {name: 'list'}};
|
||||
let contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '[Infinity] contains Infinity');
|
||||
|
||||
lists.list = {value: [Infinity]};
|
||||
args = {ITEM: 'Infinity', LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '[Infinity] contains "Infinity"');
|
||||
|
||||
lists.list = {value: [Infinity]};
|
||||
args = {ITEM: 'INFINITY', LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '[Infinity] contains "INFINITY"');
|
||||
|
||||
lists.list = {value: ['Infinity']};
|
||||
args = {ITEM: Infinity, LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '["Infinity"] contains Infinity');
|
||||
|
||||
lists.list = {value: ['Infinity']};
|
||||
args = {ITEM: 'Infinity', LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '["Infinity"] contains "Infinity"');
|
||||
|
||||
lists.list = {value: ['Infinity']};
|
||||
args = {ITEM: 'INFINITY', LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '["Infinity"] contains "INFINITY"');
|
||||
|
||||
lists.list = {value: ['INFINITY']};
|
||||
args = {ITEM: Infinity, LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '["INFINITY"] contains Infinity');
|
||||
|
||||
lists.list = {value: ['INFINITY']};
|
||||
args = {ITEM: 'Infinity', LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '["INFINITY"] contains "Infinity"');
|
||||
|
||||
lists.list = {value: ['INFINITY']};
|
||||
args = {ITEM: 'INFINITY', LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '["INFINITY"] contains "INFINITY"');
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('List with negative infinity primitive contains negative infinity', t => {
|
||||
lists.list = {value: [-Infinity]};
|
||||
let args = {ITEM: -Infinity, LIST: {name: 'list'}};
|
||||
let contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '[-Infinity] contains -Infinity');
|
||||
|
||||
lists.list = {value: [-Infinity]};
|
||||
args = {ITEM: '-Infinity', LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '[-Infinity] contains "-Infinity"');
|
||||
|
||||
lists.list = {value: [-Infinity]};
|
||||
args = {ITEM: '-INFINITY', LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '[-Infinity] contains "-INFINITY"');
|
||||
|
||||
lists.list = {value: ['-Infinity']};
|
||||
args = {ITEM: -Infinity, LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '["-Infinity"] contains -Infinity');
|
||||
|
||||
lists.list = {value: ['-Infinity']};
|
||||
args = {ITEM: '-Infinity', LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '["-Infinity"] contains "-Infinity"');
|
||||
|
||||
lists.list = {value: ['-Infinity']};
|
||||
args = {ITEM: '-INFINITY', LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '["-Infinity"] contains "-INFINITY"');
|
||||
|
||||
lists.list = {value: ['-INFINITY']};
|
||||
args = {ITEM: -Infinity, LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '["-INFINITY"] contains -Infinity');
|
||||
|
||||
lists.list = {value: ['-INFINITY']};
|
||||
args = {ITEM: '-Infinity', LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '["-INFINITY"] contains "-Infinity"');
|
||||
|
||||
lists.list = {value: ['-INFINITY']};
|
||||
args = {ITEM: '-INFINITY', LIST: {name: 'list'}};
|
||||
contains = blocks.listContainsItem(args, util);
|
||||
t.strictEqual(contains, true, '["-INFINITY"] contains "-INFINITY"');
|
||||
|
||||
t.end();
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue