UNPKG

functionalscript

Version:

FunctionalScript is a purely functional subset of JavaScript

358 lines (357 loc) 13.3 kB
import * as _ from "./module.f.js"; import { cmp } from "../../string/module.f.js"; import * as json from "../../../json/module.f.js"; import { sort } from "../../object/module.f.js"; const set = (node) => (value) => _.set(cmp(value))(() => value)(node); const jsonStr = json.stringify(sort); const test = [ () => { let _map = ['1']; for (let i = 2; i <= 10; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[["1","100"],"16",["25","36"]],"4",[["49"],"64",["81","9"]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 11; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[["1"],"100",["121"],"16",["25","36"]],"4",[["49"],"64",["81","9"]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 12; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[["1"],"100",["121","144"],"16",["25","36"]],"4",[["49"],"64",["81","9"]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 13; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[["1"],"100",["121","144"]],"16",[["169"],"25",["36"]],"4",[["49"],"64",["81","9"]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 14; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[["1"],"100",["121","144"]],"16",[["169","196"],"25",["36"]],"4",[["49"],"64",["81","9"]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 15; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"],"25",["36"]],"4",[["49"],"64",["81","9"]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 16; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"],"25",["256","36"]],"4",[["49"],"64",["81","9"]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 17; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],"25",[[["256"],"289",["36"]],"4",[["49"],"64",["81","9"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 18; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],"25",[[["256"],"289",["324","36"]],"4",[["49"],"64",["81","9"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 19; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],"25",[[["256"],"289",["324"],"36",["361"]],"4",[["49"],"64",["81","9"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 20; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400","49"],"64",["81","9"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 21; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["49"],"64",["81","9"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 22; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484","49"],"64",["81","9"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 23; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]],"49",[["529"],"64",["81","9"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 24; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]],"49",[["529","576"],"64",["81","9"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 25; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]],"49",[["529"],"576",["625"],"64",["81","9"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 26; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' + '"49",' + '[[["529"],"576",["625"]],"64",[["676"],"81",["9"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 27; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' + '"49",' + '[[["529"],"576",["625"]],"64",[["676","729"],"81",["9"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 28; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' + '"49",' + '[[["529"],"576",["625"]],"64",[["676"],"729",["784"],"81",["9"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 29; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' + '"49",' + '[[["529"],"576",["625"]],"64",[["676"],"729",["784"],"81",["841","9"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 30; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' + '"49",' + '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 31; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' + '"49",' + '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 32; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["1024"],"121",["144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' + '"49",' + '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 33; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["1024","1089"],"121",["144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' + '"49",' + '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 34; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["1024"]],"1089",[["1156"],"121",["144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' + '"49",' + '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 35; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["1024"]],"1089",[["1156"],"121",["1225","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' + '"49",' + '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 36; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["1024"]],"1089",[["1156"],"121",["1225"],"1296",["144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' + '"49",' + '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 37; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[["1"],"100",["1024"]],"1089",[["1156"],"121",["1225"],"1296",["1369","144"]],"16",[["169"],"196",["225"]]],' + '"25",' + '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' + '"49",' + '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') { throw r; } }, () => { let _map = ['1']; for (let i = 2; i <= 38; i++) _map = set(_map)((i * i).toString()); const r = jsonStr(_map); if (r !== '[[[[["1"],"100",["1024"]],"1089",[["1156"],"121",["1225"]]],' + '"1296",' + '[[["1369"],"144",["1444"]],"16",[["169"],"196",["225"]]]],' + '"25",' + '[[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' + '"49",' + '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]]') { throw r; } } ]; export default test;