Best JavaScript code snippet using stryker-parent
mapExpression.spec.js
Source:mapExpression.spec.js
1/* This Source Code Form is subject to the terms of the Mozilla Public2 * License, v. 2.0. If a copy of the MPL was not distributed with this3 * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */4import mapExpression from "../mapExpression";5import { format } from "prettier";6import cases from "jest-in-case";7function test({8 expression,9 newExpression,10 bindings,11 mappings,12 shouldMapBindings,13 expectedMapped,14 parseExpression = true,15}) {16 const res = mapExpression(expression, mappings, bindings, shouldMapBindings);17 if (parseExpression) {18 expect(19 format(res.expression, {20 parser: "babel",21 })22 ).toEqual(format(newExpression, { parser: "babel" }));23 } else {24 expect(res.expression).toEqual(newExpression);25 }26 expect(res.mapped).toEqual(expectedMapped);27}28function formatAwait(body) {29 return `(async () => { ${body} })();`;30}31describe("mapExpression", () => {32 cases("mapExpressions", test, [33 {34 name: "await",35 expression: "await a()",36 newExpression: formatAwait("return await a()"),37 bindings: [],38 mappings: {},39 shouldMapBindings: true,40 expectedMapped: {41 await: true,42 bindings: false,43 originalExpression: false,44 },45 },46 {47 name: "await (multiple statements)",48 expression: "const x = await a(); x + x",49 newExpression: formatAwait("self.x = await a(); return x + x;"),50 bindings: [],51 mappings: {},52 shouldMapBindings: true,53 expectedMapped: {54 await: true,55 bindings: true,56 originalExpression: false,57 },58 },59 {60 name: "await (inner)",61 expression: "async () => await a();",62 newExpression: "async () => await a();",63 bindings: [],64 mappings: {},65 shouldMapBindings: true,66 expectedMapped: {67 await: false,68 bindings: false,69 originalExpression: false,70 },71 },72 {73 name: "await (multiple awaits)",74 expression: "const x = await a(); await b(x)",75 newExpression: formatAwait("self.x = await a(); return await b(x);"),76 bindings: [],77 mappings: {},78 shouldMapBindings: true,79 expectedMapped: {80 await: true,81 bindings: true,82 originalExpression: false,83 },84 },85 {86 name: "await (assignment)",87 expression: "let x = await sleep(100, 2)",88 newExpression: formatAwait("return (self.x = await sleep(100, 2))"),89 bindings: [],90 mappings: {},91 shouldMapBindings: true,92 expectedMapped: {93 await: true,94 bindings: true,95 originalExpression: false,96 },97 },98 {99 name: "await (destructuring)",100 expression: "const { a, c: y } = await b()",101 newExpression: formatAwait(102 "return ({ a: self.a, c: self.y } = await b())"103 ),104 bindings: [],105 mappings: {},106 shouldMapBindings: true,107 expectedMapped: {108 await: true,109 bindings: true,110 originalExpression: false,111 },112 },113 {114 name: "await (array destructuring)",115 expression: "const [a, y] = await b();",116 newExpression: formatAwait("return ([self.a, self.y] = await b())"),117 bindings: [],118 mappings: {},119 shouldMapBindings: true,120 expectedMapped: {121 await: true,122 bindings: true,123 originalExpression: false,124 },125 },126 {127 name: "await (mixed destructuring)",128 expression: "const [{ a }] = await b();",129 newExpression: formatAwait("return ([{ a: self.a }] = await b())"),130 bindings: [],131 mappings: {},132 shouldMapBindings: true,133 expectedMapped: {134 await: true,135 bindings: true,136 originalExpression: false,137 },138 },139 {140 name: "await (destructuring, multiple statements)",141 expression: "const { a, c: y } = await b(), { x } = await y()",142 newExpression: formatAwait(`143 ({ a: self.a, c: self.y } = await b())144 return ({ x: self.x } = await y());145 `),146 bindings: [],147 mappings: {},148 shouldMapBindings: true,149 expectedMapped: {150 await: true,151 bindings: true,152 originalExpression: false,153 },154 },155 {156 name: "await (destructuring, bindings)",157 expression: "const { a, c: y } = await b();",158 newExpression: formatAwait("return ({ a, c: y } = await b())"),159 bindings: ["a", "y"],160 mappings: {},161 shouldMapBindings: true,162 expectedMapped: {163 await: true,164 bindings: true,165 originalExpression: false,166 },167 },168 {169 name: "await (array destructuring, bindings)",170 expression: "const [a, y] = await b();",171 newExpression: formatAwait("return ([a, y] = await b())"),172 bindings: ["a", "y"],173 mappings: {},174 shouldMapBindings: true,175 expectedMapped: {176 await: true,177 bindings: true,178 originalExpression: false,179 },180 },181 {182 name: "await (mixed destructuring, bindings)",183 expression: "const [{ a }] = await b();",184 newExpression: formatAwait("return ([{ a }] = await b())"),185 bindings: ["a"],186 mappings: {},187 shouldMapBindings: true,188 expectedMapped: {189 await: true,190 bindings: true,191 originalExpression: false,192 },193 },194 {195 name: "await (destructuring with defaults, bindings)",196 expression: "const { c, a = 5 } = await b();",197 newExpression: formatAwait("return ({ c: self.c, a = 5 } = await b())"),198 bindings: ["a", "y"],199 mappings: {},200 shouldMapBindings: true,201 expectedMapped: {202 await: true,203 bindings: true,204 originalExpression: false,205 },206 },207 {208 name: "await (array destructuring with defaults, bindings)",209 expression: "const [a, y = 10] = await b();",210 newExpression: formatAwait("return ([a, y = 10] = await b())"),211 bindings: ["a", "y"],212 mappings: {},213 shouldMapBindings: true,214 expectedMapped: {215 await: true,216 bindings: true,217 originalExpression: false,218 },219 },220 {221 name: "await (mixed destructuring with defaults, bindings)",222 expression: "const [{ c = 5 }, a = 5] = await b();",223 newExpression: formatAwait(224 "return ([ { c: self.c = 5 }, a = 5] = await b())"225 ),226 bindings: ["a"],227 mappings: {},228 shouldMapBindings: true,229 expectedMapped: {230 await: true,231 bindings: true,232 originalExpression: false,233 },234 },235 {236 name: "await (nested destructuring, bindings)",237 expression: "const { a, c: { y } } = await b();",238 newExpression: formatAwait(`239 return ({240 a,241 c: { y }242 } = await b());243 `),244 bindings: ["a", "y"],245 mappings: {},246 shouldMapBindings: true,247 expectedMapped: {248 await: true,249 bindings: true,250 originalExpression: false,251 },252 },253 {254 name: "await (nested destructuring with defaults)",255 expression: "const { a, c: { y = 5 } = {} } = await b();",256 newExpression: formatAwait(`return ({257 a: self.a,258 c: { y: self.y = 5 } = {},259 } = await b());260 `),261 bindings: [],262 mappings: {},263 shouldMapBindings: true,264 expectedMapped: {265 await: true,266 bindings: true,267 originalExpression: false,268 },269 },270 {271 name: "await (very nested destructuring with defaults)",272 expression:273 "const { a, c: { y: { z = 10, b } = { b: 5 } } } = await b();",274 newExpression: formatAwait(`275 return ({276 a: self.a,277 c: {278 y: { z: self.z = 10, b: self.b } = {279 b: 5280 }281 }282 } = await b());283 `),284 bindings: [],285 mappings: {},286 shouldMapBindings: true,287 expectedMapped: {288 await: true,289 bindings: true,290 originalExpression: false,291 },292 },293 {294 name: "await (with SyntaxError)",295 expression: "await new Promise())",296 newExpression: formatAwait("await new Promise())"),297 parseExpression: false,298 bindings: [],299 mappings: {},300 shouldMapBindings: true,301 expectedMapped: {302 await: true,303 bindings: false,304 originalExpression: false,305 },306 },307 {308 name: "await (no bindings, let assignment)",309 expression: "let a = await 123;",310 newExpression: `let a;311 (async () => {312 return a = await 123;313 })()`,314 shouldMapBindings: false,315 expectedMapped: {316 await: true,317 bindings: false,318 originalExpression: false,319 },320 },321 {322 name: "await (no bindings, var assignment)",323 expression: "var a = await 123;",324 newExpression: `var a;325 (async () => {326 return a = await 123;327 })()`,328 shouldMapBindings: false,329 expectedMapped: {330 await: true,331 bindings: false,332 originalExpression: false,333 },334 },335 {336 name: "await (no bindings, const assignment)",337 expression: "const a = await 123;",338 newExpression: `let a;339 (async () => {340 return a = await 123;341 })()`,342 shouldMapBindings: false,343 expectedMapped: {344 await: true,345 bindings: false,346 originalExpression: false,347 },348 },349 {350 name: "await (no bindings, multiple assignments)",351 expression: "let a = 1, b, c = 3; b = await 123; a + b + c",352 newExpression: `let a, b, c;353 (async () => {354 a = 1;355 c = 3;356 b = await 123;357 return a + b + c;358 })()`,359 shouldMapBindings: false,360 expectedMapped: {361 await: true,362 bindings: false,363 originalExpression: false,364 },365 },366 {367 name: "await (no bindings, object destructuring)",368 expression: "let {a, b, c} = await x;",369 newExpression: `let a, b, c;370 (async () => {371 return ({a, b, c} = await x);372 })()`,373 shouldMapBindings: false,374 expectedMapped: {375 await: true,376 bindings: false,377 originalExpression: false,378 },379 },380 {381 name: "await (no bindings, object destructuring with rest)",382 expression: "let {a, ...rest} = await x;",383 newExpression: `let a, rest;384 (async () => {385 return ({a, ...rest} = await x);386 })()`,387 shouldMapBindings: false,388 expectedMapped: {389 await: true,390 bindings: false,391 originalExpression: false,392 },393 },394 {395 name:396 "await (no bindings, object destructuring with renaming and default)",397 expression: "let {a: hello, b, c: world, d: $ = 4} = await x;",398 newExpression: `let hello, b, world, $;399 (async () => {400 return ({a: hello, b, c: world, d: $ = 4} = await x);401 })()`,402 shouldMapBindings: false,403 expectedMapped: {404 await: true,405 bindings: false,406 originalExpression: false,407 },408 },409 {410 name:411 "await (no bindings, nested object destructuring + renaming + default)",412 expression: `let {413 a: hello, c: { y: { z = 10, b: bill, d: [e, f = 20] }}414 } = await x; z;`,415 newExpression: `let hello, z, bill, e, f;416 (async () => {417 ({ a: hello, c: { y: { z = 10, b: bill, d: [e, f = 20] }}} = await x);418 return z;419 })()`,420 shouldMapBindings: false,421 expectedMapped: {422 await: true,423 bindings: false,424 originalExpression: false,425 },426 },427 {428 name: "await (no bindings, array destructuring)",429 expression: "let [a, b, c] = await x; c;",430 newExpression: `let a, b, c;431 (async () => {432 [a, b, c] = await x;433 return c;434 })()`,435 shouldMapBindings: false,436 expectedMapped: {437 await: true,438 bindings: false,439 originalExpression: false,440 },441 },442 {443 name: "await (no bindings, array destructuring with default)",444 expression: "let [a, b = 1, c = 2] = await x; c;",445 newExpression: `let a, b, c;446 (async () => {447 [a, b = 1, c = 2] = await x;448 return c;449 })()`,450 shouldMapBindings: false,451 expectedMapped: {452 await: true,453 bindings: false,454 originalExpression: false,455 },456 },457 {458 name: "await (no bindings, array destructuring with default and rest)",459 expression: "let [a, b = 1, c = 2, ...rest] = await x; rest;",460 newExpression: `let a, b, c, rest;461 (async () => {462 [a, b = 1, c = 2, ...rest] = await x;463 return rest;464 })()`,465 shouldMapBindings: false,466 expectedMapped: {467 await: true,468 bindings: false,469 originalExpression: false,470 },471 },472 {473 name: "await (no bindings, nested array destructuring with default)",474 expression: "let [a, b = 1, [c = 2, [d = 3, e = 4]]] = await x; c;",475 newExpression: `let a, b, c, d, e;476 (async () => {477 [a, b = 1, [c = 2, [d = 3, e = 4]]] = await x;478 return c;479 })()`,480 shouldMapBindings: false,481 expectedMapped: {482 await: true,483 bindings: false,484 originalExpression: false,485 },486 },487 {488 name: "await (no bindings, dynamic import)",489 expression: `490 var {rainbowLog} = await import("./cool-module.js");491 rainbowLog("dynamic");`,492 newExpression: `var rainbowLog;493 (async () => {494 ({rainbowLog} = await import("./cool-module.js"));495 return rainbowLog("dynamic");496 })()`,497 shouldMapBindings: false,498 expectedMapped: {499 await: true,500 bindings: false,501 originalExpression: false,502 },503 },504 {505 name: "await (nullish coalesce operator)",506 expression: "await x; true ?? false",507 newExpression: `(async () => {508 await x;509 return true ?? false;510 })()`,511 shouldMapBindings: false,512 expectedMapped: {513 await: true,514 bindings: false,515 originalExpression: false,516 },517 },518 {519 name: "await (optional chaining operator)",520 expression: "await x; x?.y?.z",521 newExpression: `(async () => {522 await x;523 return x?.y?.z;524 })()`,525 shouldMapBindings: false,526 expectedMapped: {527 await: true,528 bindings: false,529 originalExpression: false,530 },531 },532 {533 name: "await (async function declaration with nullish coalesce operator)",534 expression: "async function coalesce(x) { await x; return x ?? false; }",535 newExpression:536 "async function coalesce(x) { await x; return x ?? false; }",537 shouldMapBindings: false,538 expectedMapped: {539 await: false,540 bindings: false,541 originalExpression: false,542 },543 },544 {545 name:546 "await (async function declaration with optional chaining operator)",547 expression: "async function chain(x) { await x; return x?.y?.z; }",548 newExpression: "async function chain(x) { await x; return x?.y?.z; }",549 shouldMapBindings: false,550 expectedMapped: {551 await: false,552 bindings: false,553 originalExpression: false,554 },555 },556 {557 name: "simple",558 expression: "a",559 newExpression: "a",560 bindings: [],561 mappings: {},562 shouldMapBindings: true,563 expectedMapped: {564 await: false,565 bindings: false,566 originalExpression: false,567 },568 },569 {570 name: "mappings",571 expression: "a",572 newExpression: "_a",573 bindings: [],574 mappings: {575 a: "_a",576 },577 shouldMapBindings: true,578 expectedMapped: {579 await: false,580 bindings: false,581 originalExpression: true,582 },583 },584 {585 name: "declaration",586 expression: "var a = 3;",587 newExpression: "self.a = 3",588 bindings: [],589 mappings: {},590 shouldMapBindings: true,591 expectedMapped: {592 await: false,593 bindings: true,594 originalExpression: false,595 },596 },597 {598 name: "declaration + destructuring",599 expression: "var { a } = { a: 3 };",600 newExpression: "({ a: self.a } = {\n a: 3 \n})",601 bindings: [],602 mappings: {},603 shouldMapBindings: true,604 expectedMapped: {605 await: false,606 bindings: true,607 originalExpression: false,608 },609 },610 {611 name: "bindings",612 expression: "var a = 3;",613 newExpression: "a = 3",614 bindings: ["a"],615 mappings: {},616 shouldMapBindings: true,617 expectedMapped: {618 await: false,619 bindings: true,620 originalExpression: false,621 },622 },623 {624 name: "bindings + destructuring",625 expression: "var { a } = { a: 3 };",626 newExpression: "({ a } = { \n a: 3 \n })",627 bindings: ["a"],628 mappings: {},629 shouldMapBindings: true,630 expectedMapped: {631 await: false,632 bindings: true,633 originalExpression: false,634 },635 },636 {637 name: "bindings + destructuring + rest",638 expression: "var { a, ...foo } = {}",639 newExpression: "({ a, ...self.foo } = {})",640 bindings: ["a"],641 mappings: {},642 shouldMapBindings: true,643 expectedMapped: {644 await: false,645 bindings: true,646 originalExpression: false,647 },648 },649 {650 name: "bindings + array destructuring + rest",651 expression: "var [a, ...foo] = []",652 newExpression: "([a, ...self.foo] = [])",653 bindings: ["a"],654 mappings: {},655 shouldMapBindings: true,656 expectedMapped: {657 await: false,658 bindings: true,659 originalExpression: false,660 },661 },662 {663 name: "bindings + mappings",664 expression: "a = 3;",665 newExpression: "self.a = 3",666 bindings: ["_a"],667 mappings: { a: "_a" },668 shouldMapBindings: true,669 expectedMapped: {670 await: false,671 bindings: true,672 originalExpression: false,673 },674 },675 {676 name: "bindings + mappings + destructuring",677 expression: "var { a } = { a: 4 }",678 newExpression: "({ a: self.a } = {\n a: 4 \n})",679 bindings: ["_a"],680 mappings: { a: "_a" },681 shouldMapBindings: true,682 expectedMapped: {683 await: false,684 bindings: true,685 originalExpression: false,686 },687 },688 {689 name: "bindings without mappings",690 expression: "a = 3;",691 newExpression: "a = 3",692 bindings: [],693 mappings: { a: "_a" },694 shouldMapBindings: false,695 expectedMapped: {696 await: false,697 bindings: false,698 originalExpression: false,699 },700 },701 {702 name: "object destructuring + bindings without mappings",703 expression: "({ a } = {});",704 newExpression: "({ a: _a } = {})",705 bindings: [],706 mappings: { a: "_a" },707 shouldMapBindings: false,708 expectedMapped: {709 await: false,710 bindings: false,711 originalExpression: true,712 },713 },714 ]);...
mapBindings.spec.js
Source:mapBindings.spec.js
1/* This Source Code Form is subject to the terms of the Mozilla Public2 * License, v. 2.0. If a copy of the MPL was not distributed with this3 * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */4import mapExpressionBindings from "../mapBindings";5import { parseConsoleScript } from "../utils/ast";6import cases from "jest-in-case";7const prettier = require("prettier");8function format(code) {9 return prettier.format(code, { semi: false, parser: "babel" });10}11function excludedTest({ name, expression, bindings = [] }) {12 const safeExpression = mapExpressionBindings(13 expression,14 parseConsoleScript(expression),15 bindings16 );17 expect(format(safeExpression)).toEqual(format(expression));18}19function includedTest({ name, expression, newExpression, bindings }) {20 const safeExpression = mapExpressionBindings(21 expression,22 parseConsoleScript(expression),23 bindings24 );25 expect(format(safeExpression)).toEqual(format(newExpression));26}27describe("mapExpressionBindings", () => {28 cases("included cases", includedTest, [29 {30 name: "single declaration",31 expression: "const a = 2; let b = 3; var c = 4;",32 newExpression: "self.a = 2; self.b = 3; self.c = 4;",33 },34 {35 name: "multiple declarations",36 expression: "const a = 2, b = 3",37 newExpression: "self.a = 2; self.b = 3",38 },39 {40 name: "declaration with separate assignment",41 expression: "let a; a = 2;",42 newExpression: "self.a = void 0; self.a = 2;",43 },44 {45 name: "multiple declarations with no assignment",46 expression: "let a = 2, b;",47 newExpression: "self.a = 2; self.b = void 0;",48 },49 {50 name: "local bindings become assignments",51 bindings: ["a"],52 expression: "var a = 2;",53 newExpression: "a = 2;",54 },55 {56 name: "assignments",57 expression: "a = 2;",58 newExpression: "self.a = 2;",59 },60 {61 name: "assignments with +=",62 expression: "a += 2;",63 newExpression: "self.a += 2;",64 },65 {66 name: "destructuring (objects)",67 expression: "const { a } = {}; ",68 newExpression: "({ a: self.a } = {})",69 },70 {71 name: "destructuring (arrays)",72 expression: " var [a, ...foo] = [];",73 newExpression: "([self.a, ...self.foo] = [])",74 },75 {76 name: "destructuring (declarations)",77 expression: "var {d,e} = {}, {f} = {}; ",78 newExpression: `({ d: self.d, e: self.e } = {});79 ({ f: self.f } = {})80 `,81 },82 {83 name: "destructuring & declaration",84 expression: "const { a } = {}; var b = 3",85 newExpression: `({ a: self.a } = {});86 self.b = 387 `,88 },89 {90 name: "destructuring assignment",91 expression: "[a] = [3]",92 newExpression: "[self.a] = [3]",93 },94 {95 name: "destructuring assignment (declarations)",96 expression: "[a] = [3]; var b = 4",97 newExpression: "[self.a] = [3];\n self.b = 4",98 },99 ]);100 cases("excluded cases", excludedTest, [101 { name: "local variables", expression: "function a() { var b = 2}" },102 { name: "functions", expression: "function a() {}" },103 { name: "classes", expression: "class a {}" },104 { name: "with", expression: "with (obj) {var a = 2;}" },105 {106 name: "with & declaration",107 expression: "with (obj) {var a = 2;}; ; var b = 3",108 },109 {110 name: "hoisting",111 expression: "{ const h = 3; }",112 },113 {114 name: "assignments",115 bindings: ["a"],116 expression: "a = 2;",117 },118 {119 name: "identifier",120 expression: "a",121 },122 ]);123 cases("cases that we should map in the future", excludedTest, [124 { name: "blocks (IF)", expression: "if (true) { var a = 3; }" },125 {126 name: "hoisting",127 expression: "{ var g = 5; }",128 },129 {130 name: "for loops bindings",131 expression: "for (let foo = 4; false;){}",132 },133 ]);134 cases("cases that we shouldn't map in the future", includedTest, [135 {136 name: "window properties",137 expression: "var innerHeight = 3; var location = 5;",138 newExpression: "self.innerHeight = 3; self.location = 5;",139 },140 {141 name: "self declaration",142 expression: "var self = 3",143 newExpression: "self.self = 3",144 },145 {146 name: "self assignment",147 expression: "self = 3",148 newExpression: "self.self = 3",149 },150 ]);...
maximize.js
Source:maximize.js
1// "100-200*300-500+20" ë¤ìê³¼ ê°ì 문ìì´ì ë°ììë2// ì°ì°ì ê³ì° ìì를 ê²°ì íì¬ ê²°ê³¼ê°ì´ ê°ì¥ í°ê²ì ëì¶íë í¨ì를 ìì±3// expressionì [ 100, '-', 200, '*', 300, '-', 500, '+', 20 ] ì¼ë¡ ë³í íë í¨ì4// '-', '*', '+' ì ëí´ ìë¤ ì¸ë±ì¤ë¥¼ ë½ìë´ ê²ì°íë í¨ì5// 모ë ê²½ì°ìì ê°ì¥ ì ëê°ì´ í° ê²°ê³¼ë¥¼ return6// ** eval() í¨ì7// eval('2+2");8// '2+2' 를 2+2 ë¡ê³ì°9const solution = (expression) => {10 let answer = 0;11 let newExpression = [];12 let originalExpression = [];13 let cal = 0;14 let calSolution = [];15 const chars = expression.split('');16 let newItem = '';17 for (let i = 0; i < chars.length; i++) {18 if (chars[i] !== '-' && chars[i] !== '+' && chars[i] !== '*') {19 newItem += chars[i];20 } else {21 newExpression.push(newItem);22 newExpression.push(chars[i]);23 newItem = '';24 }25 if (i + 1 == chars.length) {26 newExpression.push(newItem);27 newItem = '';28 }29 }30 originalExpression = newExpression.slice();31 const arr = [32 ['+', '-', '*'],33 ['+', '*', '-'],34 ['-', '+', '*'],35 ['-', '*', '+'],36 ['*', '+', '-'],37 ['*', '-', '+'],38 ];39 for (let i = 0; i < arr.length; i++) {40 for (let j = 0; j < arr[i].length; j++) {41 for (let g = 0; g < newExpression.length; g++) {42 if (arr[i][j] == '-') {43 if (newExpression[g] == '-') {44 cal = Number(newExpression[g - 1]) - Number(newExpression[g + 1]);45 newExpression.splice(g - 1, 3, cal);46 cal = 0;47 }48 } else if (arr[i][j] == '+') {49 if (newExpression[g] == '+') {50 cal = Number(newExpression[g - 1]) + Number(newExpression[g + 1]);51 newExpression.splice(g - 1, 3, cal);52 cal = 0;53 }54 } else if (arr[i][j] == '*') {55 if (newExpression[g] == '*') {56 cal = Number(newExpression[g - 1]) * Number(newExpression[g + 1]);57 newExpression.splice(g - 1, 3, cal);58 cal = 0;59 }60 }61 }62 }63 if (newExpression.length > 2) {64 if (newExpression[1] == '-') {65 newExpression.splice(66 0,67 3,68 Number(newExpression[0]) - Number(newExpression[2])69 );70 } else if (newExpression[1] == '*') {71 newExpression.splice(72 0,73 3,74 Number(newExpression[0]) * Number(newExpression[2])75 );76 } else if (newExpression[1] == '+') {77 newExpression.splice(78 0,79 3,80 Number(newExpression[0]) + Number(newExpression[2])81 );82 }83 }84 calSolution.push(Math.abs(newExpression[0]));85 newExpression = originalExpression.slice();86 }87 answer = Math.max.apply(null, calSolution);88 return answer;89};90console.log(eval('2+2'));91// console.log(solution('100-200*300-500+20'));92// console.log(solution('50*6-3*2'));93// console.log(solution('300-400*900+100-20+100'));94// function solution(expression) {95// const prior = [96// ['-', '*', '+'],97// ['-', '+', '*'],98// ['*', '-', '+'],99// ['*', '+', '-'],100// ['+', '-', '*'],101// ['+', '*', '-'],102// ];103// let cand = [];104// for (let opCand of prior) {105// const temp = expression.split(/(\D)/);106// for (let exp of opCand) {107// while (temp.includes(exp)) {108// const idx = temp.indexOf(exp);109// temp.splice(idx - 1, 3, eval(temp.slice(idx - 1, idx + 2).join('')));110// }111// }112// cand.push(Math.abs(temp[0]));113// }114// return Math.max(...cand);115// }...
Using AI Code Generation
1var strykerParent = require('stryker-parent');2var stryker = strykerParent.newExpression();3var strykerParent = require('stryker-parent');4var stryker = strykerParent.newMutationTestRunner();5var strykerParent = require('stryker-parent');6var stryker = strykerParent.newTestFramework();7var strykerParent = require('stryker-parent');8var stryker = strykerParent.newTestRunner();9var strykerParent = require('stryker-parent');10var stryker = strykerParent.newTranspiler();11var strykerParent = require('stryker-parent');12var stryker = strykerParent.newReport();13var strykerParent = require('stryker-parent');14var stryker = strykerParent.newConfigEditor();15var strykerParent = require('stryker-parent');16var stryker = strykerParent.newStrykerDashboardReporter();17var strykerParent = require('stryker-parent');18var stryker = strykerParent.newMutantFilter();19var strykerParent = require('stryker-parent');20var stryker = strykerParent.newTimer();21var strykerParent = require('stryker-parent');22var stryker = strykerParent.newLogger();23var strykerParent = require('stryker-parent');24var stryker = strykerParent.newLoggingClient();25var strykerParent = require('stryker-parent');26var stryker = strykerParent.newTempFolder();
Using AI Code Generation
1var NewExpression = require('stryker-parent').NewExpression;2var newExpression = new NewExpression();3newExpression.doSomething();4var NewExpression = require('stryker-parent').NewExpression;5var newExpression = new NewExpression();6newExpression.doSomething();7var NewExpression = require('stryker-parent').NewExpression;8var newExpression = new NewExpression();9newExpression.doSomething();
Using AI Code Generation
1var stryker = require('stryker-parent');2var newExpression = stryker.newExpression;3var expression = newExpression('test');4console.log(expression);5var stryker = require('stryker-parent');6var newExpression = stryker.newExpression;7var expression = newExpression('test');8console.log(expression);9var stryker = require('stryker-parent');10var newExpression = stryker.newExpression;11var expression = newExpression('test');12console.log(expression);13var stryker = require('stryker-parent');14var newExpression = stryker.newExpression;15var expression = newExpression('test');16console.log(expression);17var stryker = require('stryker-parent');18var newExpression = stryker.newExpression;19var expression = newExpression('test');20console.log(expression);21var stryker = require('stryker-parent');22var newExpression = stryker.newExpression;23var expression = newExpression('test');24console.log(expression);25var stryker = require('stryker-parent');26var newExpression = stryker.newExpression;27var expression = newExpression('test');28console.log(expression);29var stryker = require('stryker-parent');30var newExpression = stryker.newExpression;31var expression = newExpression('test');32console.log(expression);33var stryker = require('stryker-parent');34var newExpression = stryker.newExpression;35var expression = newExpression('test');36console.log(expression);37var stryker = require('stryker-parent');38var newExpression = stryker.newExpression;39var expression = newExpression('test');
Using AI Code Generation
1var stryker = require('stryker-parent');2var newExpression = stryker.newExpression;3var expression = newExpression('foo', 'bar');4console.log(expression);5var stryker = require('stryker-parent');6var newExpression = stryker.newExpression;7var expression = newExpression('foo', 'bar');8console.log(expression);
Using AI Code Generation
1var strykerParent = require('stryker-parent');2var newExpression = strykerParent.newExpression;3var expression = newExpression('1 + 2');4console.log('Expression: ' + expression);5### `newExpression(expression)`6* `isNaN(value)`7* `isFinite(value)`8* `parseInt(value, radix)`9* `parseFloat(value)`10* `Math.random()`11* `Math.round(value)`12* `Math.ceil(value)`13* `Math.floor(value)`14### `expression.evaluate(context)`15var expression = newExpression('a + b');16### `expression.mutate()`17var expression = newExpression('1 + 2');
Using AI Code Generation
1var strykerParent = require('stryker-parent');2var newExpression = strykerParent.newExpression;3var expression = newExpression('foo.bar', 'baz');4var strykerParent = require('stryker-parent');5var newExpression = strykerParent.newExpression;6var expression = newExpression('foo.bar', 'baz');7var strykerParent = require('stryker-parent');8var newExpression = strykerParent.newExpression;9var expression = newExpression('foo.bar', 'baz');10var strykerParent = require('stryker-parent');11var newExpression = strykerParent.newExpression;12var expression = newExpression('foo.bar', 'baz');13var strykerParent = require('stryker-parent');14var newExpression = strykerParent.newExpression;15var expression = newExpression('foo.bar', 'baz');16var strykerParent = require('stryker-parent');17var newExpression = strykerParent.newExpression;18var expression = newExpression('foo.bar', 'baz');19var strykerParent = require('stryker-parent');20var newExpression = strykerParent.newExpression;21var expression = newExpression('foo.bar', 'baz');22var strykerParent = require('stryker-parent');23var newExpression = strykerParent.newExpression;24var expression = newExpression('foo.bar', 'baz');25var strykerParent = require('stryker-parent');26var newExpression = strykerParent.newExpression;27var expression = newExpression('foo.bar', 'baz');28var strykerParent = require('stryker-parent');29var newExpression = strykerParent.newExpression;30var expression = newExpression('foo.bar', 'baz');31var strykerParent = require('stryker-parent');32var newExpression = strykerParent.newExpression;33var expression = newExpression('foo
Using AI Code Generation
1var stryker = require('stryker-parent');2var newExpression = stryker.newExpression;3var expression = newExpression('new', 'Foo');4var stryker = require('stryker-parent');5var newExpression = stryker.newExpression;6var expression = newExpression('new', 'Foo', 'bar');7var stryker = require('stryker-parent');8var newExpression = stryker.newExpression;9var expression = newExpression('new', 'Foo', ['bar', 'baz']);10var stryker = require('stryker-parent');11var newExpression = stryker.newExpression;12var expression = newExpression('new', 'Foo', 'bar', 'baz');13var stryker = require('stryker-parent');14var newExpression = stryker.newExpression;15var expression = newExpression('new', 'Foo', ['bar', 'baz'], 'qux');16var stryker = require('stryker-parent');17var newExpression = stryker.newExpression;18var expression = newExpression('new', 'Foo', 'bar', ['baz', 'qux']);19var stryker = require('stryker-parent');20var newExpression = stryker.newExpression;21var expression = newExpression('new', 'Foo', ['bar', 'baz'], ['qux', 'quux']);
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!