UNPKG

wsemi

Version:

A support package for web developer.

357 lines (335 loc) 9.39 kB
import assert from 'assert' import arrGroupByMaxmin from '../src/arrGroupByMaxmin.mjs' describe(`arrGroupByMaxmin`, function() { let arr1 = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6] let mm1 = [ { min: 0, max: 2, }, { min: 2, max: 5, }, ] // console.log(arrGroupByMaxmin(arr1, mm1)) let r1 = [ { min: 0, max: 2, items: [1.1] }, { min: 2, max: 5, items: [2.2, 3.3, 4.4] } ] it(`should return ${JSON.stringify(r1)} when input ${JSON.stringify(arr1)}, ${JSON.stringify(mm1)}`, function() { let r = arrGroupByMaxmin(arr1, mm1) let rr = r1 assert.strict.deepStrictEqual(r, rr) }) let arr2 = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6] let mm2 = [ { min: 0, max: 2, }, { min: 2.5, max: 5, }, ] // console.log(arrGroupByMaxmin(arr2, mm2)) let r2 = [ { min: 0, max: 2, items: [1.1] }, { min: 2.5, max: 5, items: [3.3, 4.4] } ] it(`should return ${JSON.stringify(r2)} when input ${JSON.stringify(arr2)}, ${JSON.stringify(mm2)}`, function() { let r = arrGroupByMaxmin(arr2, mm2) let rr = r2 assert.strict.deepStrictEqual(r, rr) }) let arr3 = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6] let mm3 = [ { min: -1e20, max: 2, }, { min: 2.5, max: 5, }, { min: 6, max: 1e20, }, ] // console.log(arrGroupByMaxmin(arr3, mm3)) let r3 = [ { min: -100000000000000000000, max: 2, items: [1.1] }, { min: 2.5, max: 5, items: [3.3, 4.4] }, { min: 6, max: 100000000000000000000, items: [6.6] } ] it(`should return ${JSON.stringify(r3)} when input ${JSON.stringify(arr3)}, ${JSON.stringify(mm3)}`, function() { let r = arrGroupByMaxmin(arr3, mm3) let rr = r3 assert.strict.deepStrictEqual(r, rr) }) let arr4 = [ { name: 'a', value: 1.1, }, { name: 'b', value: 2.2, }, { name: 'c', value: 3.3, }, { name: 'd', value: 4.4, }, { name: 'e', value: 5.5, }, { name: 'f', value: 6.6, }, ] let mm4 = [ { min: 0, max: 2, }, { min: 2, max: 5, }, ] // console.log(JSON.stringify(arrGroupByMaxmin(arr4, mm4), null, 2)) let r4 = [ { 'min': 0, 'max': 2, 'items': [ { 'name': 'a', 'value': 1.1 } ] }, { 'min': 2, 'max': 5, 'items': [ { 'name': 'b', 'value': 2.2 }, { 'name': 'c', 'value': 3.3 }, { 'name': 'd', 'value': 4.4 } ] } ] it(`should return ${JSON.stringify(r4)} when input ${JSON.stringify(arr4)}, ${JSON.stringify(mm4)}`, function() { let r = arrGroupByMaxmin(arr4, mm4) let rr = r4 assert.strict.deepStrictEqual(r, rr) }) let arr5 = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6] let mm5 = [ { rmin: 0, rmax: 2, }, { rmin: 2, rmax: 5, }, ] // console.log(arrGroupByMaxmin(arr5, mm5, { keyMin: 'rmin', keyMax: 'rmax' })) let r5 = [ { rmin: 0, rmax: 2, items: [1.1] }, { rmin: 2, rmax: 5, items: [2.2, 3.3, 4.4] } ] it(`should return ${JSON.stringify(r5)} when input ${JSON.stringify(arr5)}, ${JSON.stringify(mm5)}, { keyMin: 'rmin', keyMax: 'rmax' }`, function() { let r = arrGroupByMaxmin(arr5, mm5, { keyMin: 'rmin', keyMax: 'rmax' }) let rr = r5 assert.strict.deepStrictEqual(r, rr) }) let arr6 = [ { name: 'a', data: 1.1, }, { name: 'b', data: 2.2, }, { name: 'c', data: 3.3, }, { name: 'd', data: 4.4, }, { name: 'e', data: 5.5, }, { name: 'f', data: 6.6, }, ] let mm6 = [ { min: 0, max: 2, }, { min: 2, max: 5, }, ] // console.log(JSON.stringify(arrGroupByMaxmin(arr6, mm6, { keyValue: 'data' }), null, 2)) let r6 = [ { 'min': 0, 'max': 2, 'items': [ { 'name': 'a', 'data': 1.1 } ] }, { 'min': 2, 'max': 5, 'items': [ { 'name': 'b', 'data': 2.2 }, { 'name': 'c', 'data': 3.3 }, { 'name': 'd', 'data': 4.4 } ] } ] it(`should return ${JSON.stringify(r6)} when input ${JSON.stringify(arr6)}, ${JSON.stringify(mm6)}, { keyValue: 'data' }`, function() { let r = arrGroupByMaxmin(arr6, mm6, { keyValue: 'data' }) let rr = r6 assert.strict.deepStrictEqual(r, rr) }) let arr7 = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6] let mm7 = [ { min: 0, max: 2, }, { min: 2, max: 5, }, ] // console.log(arrGroupByMaxmin(arr7, mm7, { keyItems: 'result' })) let r7 = [ { min: 0, max: 2, result: [1.1] }, { min: 2, max: 5, result: [2.2, 3.3, 4.4] } ] it(`should return ${JSON.stringify(r7)} when input ${JSON.stringify(arr7)}, ${JSON.stringify(mm7)}, { keyItems: 'result' }`, function() { let r = arrGroupByMaxmin(arr7, mm7, { keyItems: 'result' }) let rr = r7 assert.strict.deepStrictEqual(r, rr) }) let arr8 = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6] let mm8 = [ { min: 1.1, minType: '>', max: 2.2, maxType: '<=', }, { min: 2.2, minType: '>=', max: 5.5, maxType: '<', }, ] // console.log(arrGroupByMaxmin(arr8, mm8)) let r8 = [ { min: 1.1, minType: '>', max: 2.2, maxType: '<=', items: [2.2] }, { min: 2.2, minType: '>=', max: 5.5, maxType: '<', items: [2.2, 3.3, 4.4] } ] it(`should return ${JSON.stringify(r8)} when input ${JSON.stringify(arr8)}, ${JSON.stringify(mm8)}`, function() { let r = arrGroupByMaxmin(arr8, mm8) let rr = r8 assert.strict.deepStrictEqual(r, rr) }) it(`should return [] when input ${JSON.stringify(arr1)}, ''`, function() { let r = arrGroupByMaxmin(arr1, '') assert.strict.deepStrictEqual(r, []) }) it(`should return [] when input ${JSON.stringify(arr1)}, []`, function() { let r = arrGroupByMaxmin(arr1, []) assert.strict.deepStrictEqual(r, []) }) it(`should return [] when input ${JSON.stringify(arr1)}, {}`, function() { let r = arrGroupByMaxmin(arr1, {}) assert.strict.deepStrictEqual(r, []) }) it(`should return [] when input ${JSON.stringify(arr1)}, null`, function() { let r = arrGroupByMaxmin(arr1, null) assert.strict.deepStrictEqual(r, []) }) it(`should return [] when input ${JSON.stringify(arr1)}, undefined`, function() { let r = arrGroupByMaxmin(arr1, undefined) assert.strict.deepStrictEqual(r, []) }) it(`should return [] when input ''`, function() { let r = arrGroupByMaxmin('') assert.strict.deepStrictEqual(r, []) }) it(`should return [] when input []`, function() { let r = arrGroupByMaxmin([]) assert.strict.deepStrictEqual(r, []) }) it(`should return [] when input {}`, function() { let r = arrGroupByMaxmin({}) assert.strict.deepStrictEqual(r, []) }) it(`should return [] when input null`, function() { let r = arrGroupByMaxmin(null) assert.strict.deepStrictEqual(r, []) }) it(`should return [] when input undefined`, function() { let r = arrGroupByMaxmin(undefined) assert.strict.deepStrictEqual(r, []) }) })