123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298 |
- /**
- * Set Operations tests.
- *
- * @author d98762625
- *
- * @copyright Crown Copyright 2017
- * @license Apache-2.0
- */
- import TestRegister from "../../TestRegister.js";
- TestRegister.addTests([
- {
- name: "Set Operations: Nothing",
- input: "\n\n",
- expectedOutput: "",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Union"],
- },
- ],
- },
- {
- name: "Set Operations: Union",
- input: "1 2 3 4 5\n\n3 4 5 6 7",
- expectedOutput: "1 2 3 4 5 6 7",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Union"],
- },
- ],
- },
- {
- name: "Set Operations: Union: invalid sample number",
- input: "1 2 3 4 5\n\n3 4 5 6 7\n\n1",
- expectedOutput: "Incorrect number of sets, perhaps you need to modify the sample delimiter or add more samples?",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Union"],
- },
- ],
- },
- {
- name: "Set Operations: Union: item delimiter",
- input: "1,2,3,4,5\n\n3,4,5,6,7",
- expectedOutput: "1,2,3,4,5,6,7",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", ",", "Union"],
- },
- ],
- },
- {
- name: "Set Operations: Union: sample delimiter",
- input: "1 2 3 4 5whatever3 4 5 6 7",
- expectedOutput: "1 2 3 4 5 6 7",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["whatever", " ", "Union"],
- },
- ],
- },
- {
- name: "Set Operations: Intersection",
- input: "1 2 3 4 5\n\n3 4 5 6 7",
- expectedOutput: "3 4 5",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Intersection"],
- },
- ],
- },
- {
- name: "Set Operations: Intersection: only one set",
- input: "1 2 3 4 5 6 7 8",
- expectedOutput: "Incorrect number of sets, perhaps you need to modify the sample delimiter or add more samples?",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Intersection"],
- },
- ],
- },
- {
- name: "Set Operations: Intersection: item delimiter",
- input: "1-2-3-4-5\n\n3-4-5-6-7",
- expectedOutput: "3-4-5",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", "-", "Intersection"],
- },
- ],
- },
- {
- name: "Set Operations: Intersection: sample delimiter",
- input: "1-2-3-4-5z3-4-5-6-7",
- expectedOutput: "3-4-5",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["z", "-", "Intersection"],
- },
- ],
- },
- {
- name: "Set Operations: Set Difference",
- input: "1 2 3 4 5\n\n3 4 5 6 7",
- expectedOutput: "1 2",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Set Difference"],
- },
- ],
- },
- {
- name: "Set Operations: Set Difference: wrong sample count",
- input: "1 2 3 4 5_3_4 5 6 7",
- expectedOutput: "Incorrect number of sets, perhaps you need to modify the sample delimiter or add more samples?",
- recipeConfig: [
- {
- op: "Set Operations",
- args: [" ", "_", "Set Difference"],
- },
- ],
- },
- {
- name: "Set Operations: Set Difference: item delimiter",
- input: "1;2;3;4;5\n\n3;4;5;6;7",
- expectedOutput: "1;2",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", ";", "Set Difference"],
- },
- ],
- },
- {
- name: "Set Operations: Set Difference: sample delimiter",
- input: "1;2;3;4;5===3;4;5;6;7",
- expectedOutput: "1;2",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["===", ";", "Set Difference"],
- },
- ],
- },
- {
- name: "Set Operations: Symmetric Difference",
- input: "1 2 3 4 5\n\n3 4 5 6 7",
- expectedOutput: "1 2 6 7",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Symmetric Difference"],
- },
- ],
- },
- {
- name: "Set Operations: Symmetric Difference: wrong sample count",
- input: "1 2\n\n3 4 5\n\n3 4 5 6 7",
- expectedOutput: "Incorrect number of sets, perhaps you need to modify the sample delimiter or add more samples?",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Symmetric Difference"],
- },
- ],
- },
- {
- name: "Set Operations: Symmetric Difference: item delimiter",
- input: "a_b_c_d_e\n\nc_d_e_f_g",
- expectedOutput: "a_b_f_g",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", "_", "Symmetric Difference"],
- },
- ],
- },
- {
- name: "Set Operations: Symmetric Difference: sample delimiter",
- input: "a_b_c_d_eAAAAAc_d_e_f_g",
- expectedOutput: "a_b_f_g",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["AAAAA", "_", "Symmetric Difference"],
- },
- ],
- },
- {
- name: "Set Operations: Cartesian Product",
- input: "1 2 3 4 5\n\na b c d e",
- expectedOutput: "(1,a) (2,b) (3,c) (4,d) (5,e)",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Cartesian Product"],
- },
- ],
- },
- {
- name: "Set Operations: Cartesian Product: wrong sample count",
- input: "1 2\n\n3 4 5\n\na b c d e",
- expectedOutput: "Incorrect number of sets, perhaps you need to modify the sample delimiter or add more samples?",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Cartesian Product"],
- },
- ],
- },
- {
- name: "Set Operations: Cartesian Product: too many on left",
- input: "1 2 3 4 5 6\n\na b c d e",
- expectedOutput: "(1,a) (2,b) (3,c) (4,d) (5,e) (6,undefined)",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Cartesian Product"],
- },
- ],
- },
- {
- name: "Set Operations: Cartesian Product: too many on right",
- input: "1 2 3 4 5\n\na b c d e f",
- expectedOutput: "(1,a) (2,b) (3,c) (4,d) (5,e) (undefined,f)",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Cartesian Product"],
- },
- ],
- },
- {
- name: "Set Operations: Cartesian Product: item delimiter",
- input: "1-2-3-4-5\n\na-b-c-d-e",
- expectedOutput: "(1,a)-(2,b)-(3,c)-(4,d)-(5,e)",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", "-", "Cartesian Product"],
- },
- ],
- },
- {
- name: "Set Operations: Cartesian Product: sample delimiter",
- input: "1 2 3 4 5_a b c d e",
- expectedOutput: "(1,a) (2,b) (3,c) (4,d) (5,e)",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["_", " ", "Cartesian Product"],
- },
- ],
- },
- {
- name: "Set Operations: Power set: nothing",
- input: "",
- expectedOutput: "",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Power Set"],
- },
- ],
- },
- {
- name: "Set Operations: Power set: Too many samples",
- input: "1 2 3\n\n4",
- expectedOutput: "Incorrect number of sets, perhaps you need to modify the sample delimiter or add more samples?",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Power Set"],
- },
- ],
- },
- {
- name: "Set Operations: Power set",
- input: "1 2 4",
- expectedOutput: "\n4\n2\n1\n2 4\n1 4\n1 2\n1 2 4\n",
- recipeConfig: [
- {
- op: "Set Operations",
- args: ["\n\n", " ", "Power Set"],
- },
- ],
- },
- ]);
|