Update lab 9 content
This commit is contained in:
12
labs/L09/ancestry.js
Normal file
12
labs/L09/ancestry.js
Normal file
@ -0,0 +1,12 @@
|
||||
let read_json_file = require("./read_json_file.js").read_json_file;
|
||||
|
||||
let data = null;
|
||||
|
||||
function by_name(name) {
|
||||
if (data === null)
|
||||
data = read_json_file("./ancestry.json");
|
||||
// simple linear scan
|
||||
result = data.find(person => person.name === name) // find the result of the first person with the name
|
||||
return (result === undefined) ? null : result; // if the result is undefined, return null, otherwise return the result (since tests expect null not undefined)
|
||||
}
|
||||
exports.by_name = by_name;
|
41
labs/L09/ancestry.json
Normal file
41
labs/L09/ancestry.json
Normal file
@ -0,0 +1,41 @@
|
||||
[
|
||||
{"name": "Carolus Haverbeke", "sex": "m", "born": 1832, "died": 1905, "father": "Carel Haverbeke", "mother": "Maria van Brussel"},
|
||||
{"name": "Emma de Milliano", "sex": "f", "born": 1876, "died": 1956, "father": "Petrus de Milliano", "mother": "Sophia van Damme"},
|
||||
{"name": "Maria de Rycke", "sex": "f", "born": 1683, "died": 1724, "father": "Frederik de Rycke", "mother": "Laurentia van Vlaenderen"},
|
||||
{"name": "Jan van Brussel", "sex": "m", "born": 1714, "died": 1748, "father": "Jacobus van Brussel", "mother": "Joanna van Rooten"},
|
||||
{"name": "Philibert Haverbeke", "sex": "m", "born": 1907, "died": 1997, "father": "Emile Haverbeke", "mother": "Emma de Milliano"},
|
||||
{"name": "Jan Frans van Brussel", "sex": "m", "born": 1761, "died": 1833, "father": "Jacobus Bernardus van Brussel", "mother":null},
|
||||
{"name": "Pauwels van Haverbeke", "sex": "m", "born": 1535, "died": 1582, "father": "N. van Haverbeke", "mother":null},
|
||||
{"name": "Clara Aernoudts", "sex": "f", "born": 1918, "died": 2012, "father": "Henry Aernoudts", "mother": "Sidonie Coene"},
|
||||
{"name": "Emile Haverbeke", "sex": "m", "born": 1877, "died": 1968, "father": "Carolus Haverbeke", "mother": "Maria Sturm"},
|
||||
{"name": "Lieven de Causmaecker", "sex": "m", "born": 1696, "died": 1724, "father": "Carel de Causmaecker", "mother": "Joanna Claes"},
|
||||
{"name": "Pieter Haverbeke", "sex": "m", "born": 1602, "died": 1642, "father": "Lieven van Haverbeke", "mother":null},
|
||||
{"name": "Livina Haverbeke", "sex": "f", "born": 1692, "died": 1743, "father": "Daniel Haverbeke", "mother": "Joanna de Pape"},
|
||||
{"name": "Pieter Bernard Haverbeke", "sex": "m", "born": 1695, "died": 1762, "father": "Willem Haverbeke", "mother": "Petronella Wauters"},
|
||||
{"name": "Lieven van Haverbeke", "sex": "m", "born": 1570, "died": 1636, "father": "Pauwels van Haverbeke", "mother": "Lievijne Jans"},
|
||||
{"name": "Joanna de Causmaecker", "sex": "f", "born": 1762, "died": 1807, "father": "Bernardus de Causmaecker", "mother":null},
|
||||
{"name": "Willem Haverbeke", "sex": "m", "born": 1668, "died": 1731, "father": "Lieven Haverbeke", "mother": "Elisabeth Hercke"},
|
||||
{"name": "Pieter Antone Haverbeke", "sex": "m", "born": 1753, "died": 1798, "father": "Jan Francies Haverbeke", "mother": "Petronella de Decker"},
|
||||
{"name": "Maria van Brussel", "sex": "f", "born": 1801, "died": 1834, "father": "Jan Frans van Brussel", "mother": "Joanna de Causmaecker"},
|
||||
{"name": "Angela Haverbeke", "sex": "f", "born": 1728, "died": 1734, "father": "Pieter Bernard Haverbeke", "mother": "Livina de Vrieze"},
|
||||
{"name": "Elisabeth Haverbeke", "sex": "f", "born": 1711, "died": 1754, "father": "Jan Haverbeke", "mother": "Maria de Rycke"},
|
||||
{"name": "Lievijne Jans", "sex": "f", "born": 1542, "died": 1582, "father":null, "mother":null},
|
||||
{"name": "Bernardus de Causmaecker", "sex": "m", "born": 1721, "died": 1789, "father": "Lieven de Causmaecker", "mother": "Livina Haverbeke"},
|
||||
{"name": "Jacoba Lammens", "sex": "f", "born": 1699, "died": 1740, "father": "Lieven Lammens", "mother": "Livina de Vrieze"},
|
||||
{"name": "Pieter de Decker", "sex": "m", "born": 1705, "died": 1780, "father": "Joos de Decker", "mother": "Petronella van de Steene"},
|
||||
{"name": "Joanna de Pape", "sex": "f", "born": 1654, "died": 1723, "father": "Vincent de Pape", "mother": "Petronella Wauters"},
|
||||
{"name": "Daniel Haverbeke", "sex": "m", "born": 1652, "died": 1723, "father": "Lieven Haverbeke", "mother": "Elisabeth Hercke"},
|
||||
{"name": "Lieven Haverbeke", "sex": "m", "born": 1631, "died": 1676, "father": "Pieter Haverbeke", "mother": "Anna van Hecke"},
|
||||
{"name": "Martina de Pape", "sex": "f", "born": 1666, "died": 1727, "father": "Vincent de Pape", "mother": "Petronella Wauters"},
|
||||
{"name": "Jan Francies Haverbeke", "sex": "m", "born": 1725, "died": 1779, "father": "Pieter Bernard Haverbeke", "mother": "Livina de Vrieze"},
|
||||
{"name": "Maria Haverbeke", "sex": "m", "born": 1905, "died": 1997, "father": "Emile Haverbeke", "mother": "Emma de Milliano"},
|
||||
{"name": "Petronella de Decker", "sex": "f", "born": 1731, "died": 1781, "father": "Pieter de Decker", "mother": "Livina Haverbeke"},
|
||||
{"name": "Livina Sierens", "sex": "f", "born": 1761, "died": 1826, "father": "Jan Sierens", "mother": "Maria van Waes"},
|
||||
{"name": "Laurentia Haverbeke", "sex": "f", "born": 1710, "died": 1786, "father": "Jan Haverbeke", "mother": "Maria de Rycke"},
|
||||
{"name": "Carel Haverbeke", "sex": "m", "born": 1796, "died": 1837, "father": "Pieter Antone Haverbeke", "mother": "Livina Sierens"},
|
||||
{"name": "Elisabeth Hercke", "sex": "f", "born": 1632, "died": 1674, "father": "Willem Hercke", "mother": "Margriet de Brabander"},
|
||||
{"name": "Jan Haverbeke", "sex": "m", "born": 1671, "died": 1731, "father": "Lieven Haverbeke", "mother": "Elisabeth Hercke"},
|
||||
{"name": "Anna van Hecke", "sex": "f", "born": 1607, "died": 1670, "father": "Paschasius van Hecke", "mother": "Martijntken Beelaert"},
|
||||
{"name": "Maria Sturm", "sex": "f", "born": 1835, "died": 1917, "father": "Charles Sturm", "mother": "Seraphina Spelier"},
|
||||
{"name": "Jacobus Bernardus van Brussel", "sex": "m", "born": 1736, "died": 1809, "father": "Jan van Brussel", "mother": "Elisabeth Haverbeke"}
|
||||
]
|
@ -14,10 +14,10 @@ function mult(a,b) {
|
||||
}
|
||||
|
||||
function minus(a,b) {
|
||||
for (let i=0; i < a; i++){
|
||||
b--;
|
||||
for (let i=0; i < b; i++){
|
||||
a--;
|
||||
}
|
||||
return b;
|
||||
return a;
|
||||
}
|
||||
|
||||
exports.plus = plus;
|
||||
|
8
labs/L09/read_json_file.js
Normal file
8
labs/L09/read_json_file.js
Normal file
@ -0,0 +1,8 @@
|
||||
let fs = require('fs');
|
||||
|
||||
function read_json_file(filename) {
|
||||
let contents = fs.readFileSync(filename);
|
||||
|
||||
return JSON.parse(contents);
|
||||
}
|
||||
exports.read_json_file=read_json_file;
|
17
labs/L09/spec/ancestry.spec.js
Normal file
17
labs/L09/spec/ancestry.spec.js
Normal file
@ -0,0 +1,17 @@
|
||||
let by_name=require("../ancestry.js").by_name;
|
||||
describe("by_name", function() {
|
||||
it("not-present", function() {
|
||||
expect(by_name("ronald mcdonald")).toBe(null);
|
||||
expect(by_name("Captain Ahab")).toBe(null);
|
||||
});
|
||||
it("first", function () {
|
||||
expect(by_name("Carolus Haverbeke")).toEqual({"name": "Carolus Haverbeke", "sex": "m", "born": 1832, "died": 1905, "father": "Carel Haverbeke", "mother": "Maria van Brussel"});
|
||||
});
|
||||
it("last", function () {
|
||||
expect(by_name("Jacobus Bernardus van Brussel")).toEqual({"name": "Jacobus Bernardus van Brussel", "sex": "m", "born": 1736, "died": 1809, "father": "Jan van Brussel", "mother": "Elisabeth Haverbeke"});
|
||||
});
|
||||
it("middle", function () {
|
||||
expect(by_name("Joanna de Pape")).toEqual( {"name": "Joanna de Pape", "sex": "f", "born": 1654, "died": 1723, "father": "Vincent de Pape", "mother": "Petronella Wauters"});
|
||||
});
|
||||
|
||||
});
|
@ -1,6 +1,6 @@
|
||||
let arith=require ("../loop-arith.js");
|
||||
|
||||
describe("add",
|
||||
describe("plus",
|
||||
function() {
|
||||
it("1 + 1 = 2",
|
||||
function() {
|
||||
@ -25,6 +25,19 @@ describe("mult",
|
||||
});
|
||||
it("2 * 2 = 4",
|
||||
function() {
|
||||
expect(arith.mult(2, 2)).toBe(4)
|
||||
expect(arith.mult(2, 2)).toBe(4);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("minus",
|
||||
function() {
|
||||
it("1 - 1 = 0",
|
||||
function() {
|
||||
expect(arith.minus(1, 1)).toBe(0);
|
||||
});
|
||||
|
||||
it("0 - x = -x",
|
||||
function() {
|
||||
expect(arith.minus(0, 1)).toBe(-1);
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user