Compare commits

..

2 Commits

Author SHA1 Message Date
Isaac
e18f58c0d0 Finish quiz 2 2022-10-26 10:18:05 -03:00
Isaac
9a62c4918f Add quiz 2 content 2022-10-26 10:10:09 -03:00
3 changed files with 64 additions and 0 deletions

21
tests/Q2/objectSum.js Normal file
View File

@ -0,0 +1,21 @@
function objectSum(obj) {
sum = 0
for (let number of obj){
// Attempted to support objects
//if (typeof(number[1]) === "number")
// sum = sum + number[1]
//if (typeof(number[1]) === "object")
// sum = sum + objectSum(number[1])
//Case for when the number is actually not a number (eg, recursive list)
if (typeof(number) === "object")
sum = sum + objectSum(number)
//Case for when the number is a number
if(typeof(number) === "number")
sum = sum + number
}
return sum
}
exports.objectSum = objectSum

View File

@ -0,0 +1,30 @@
let sum=require ("../objectSum.js");
describe("objectSum",
function() {
it("List of numbers",
function() {
let obj = [1, 2, 3]
expect(sum.objectSum(obj)).toBe(6);
});
it("Skip non numbers",
function() {
let obj = [1, 2, "jellyfish", 3]
expect(sum.objectSum(obj)).toBe(6);
});
it("Recursive arrays",
function() {
let obj = [1, 2, [-6, 2, -2], 3]
expect(sum.objectSum(obj)).toBe(0);
});
it("Lists",
function() {
let obj = {a: 1, b: 2, c: 3}
expect(sum.objectSum(obj)).toBe(6);
});
it("Recursive lists",
function() {
let obj = [1, 2, {thing: [-6, -12], other: 6}]
expect(sum.objectSum(obj)).toBe(-9);
});
});

View File

@ -0,0 +1,13 @@
{
"spec_dir": "spec",
"spec_files": [
"**/*[sS]pec.?(m)js"
],
"helpers": [
"helpers/**/*.?(m)js"
],
"env": {
"stopSpecOnExpectationFailure": false,
"random": true
}
}