Advertisement
emilia98

Add / Swap / Shift Left / Right in

Apr 13th, 2018
296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const expect = require('chai').expect;
  2. const createList = require('./solution').createList;
  3. let result = null;
  4.  
  5. describe("Test Operations Over List", () => {
  6.     beforeEach(function(){
  7.         result = createList();
  8.     });
  9.  
  10.     describe("Add To List", () => {
  11.  
  12.         it("Add a string", () => {
  13.             result.add("pesho");
  14.             let check = result.toString();
  15.             expect(check).to.be.equal("pesho");
  16.         });
  17.  
  18.         it("Add a boolean", () => {
  19.             result.add(true);
  20.             let check = result.toString();
  21.             expect(check).to.be.equal("true");
  22.         });
  23.  
  24.         it("Add numbers", () => {
  25.             result.add(-4.5);
  26.             result.add(5);
  27.             let check = result.toString();
  28.             expect(check).to.be.equal("-4.5, 5");
  29.         });
  30.  
  31.         it("Add an empty string", () => {
  32.             result.add("");
  33.             let check = result.toString();
  34.             expect(check).to.be.equal("");
  35.         });
  36.  
  37.         it("No parameter", () => {
  38.             result.add();
  39.             let check = result.toString();
  40.             expect(check).to.be.equal("");
  41.         });
  42.     });
  43.  
  44.     describe("Shift Left", () => {
  45.         it("Shift left", () => {
  46.             result.add(7);
  47.             result.add([5, 6]);
  48.             result.add("pesho");
  49.             result.shiftLeft();
  50.             let check = result.toString();
  51.  
  52.             expect(check).to.be.equal("5,6, pesho, 7");
  53.         });
  54.  
  55.         it("Shift Left to empty array", () => {
  56.             result.shiftLeft();
  57.             let check = result.toString();
  58.             expect(check).to.be.equal("");
  59.         });
  60.  
  61.         it("Shift Left to array with one element", () => {
  62.             result.add(-5.6);
  63.             result.shiftLeft();
  64.             let check = result.toString();
  65.             expect(check).to.be.equal("-5.6");
  66.         });
  67.  
  68.         it("Shift Left to array with falsy parameters", () => {
  69.             result.add([]);
  70.             result.add("");
  71.             result.shiftLeft();
  72.             let check = result.toString();
  73.             expect(check).to.be.equal(", ");
  74.         });
  75.     });
  76.  
  77.     describe("Shift Right", () => {
  78.         it("Shift Right", () => {
  79.             result.add(7);
  80.             result.add([5, 6]);
  81.             result.add("pesho");
  82.             result.shiftRight();
  83.             let check = result.toString();
  84.  
  85.             expect(check).to.be.equal("pesho, 7, 5,6");
  86.         });
  87.  
  88.         it("Shift Right to empty array", () => {
  89.             result.shiftRight();
  90.             let check = result.toString();
  91.             expect(check).to.be.equal("");
  92.         });
  93.  
  94.         it("Shift Right to array with one element", () => {
  95.             result.add(-5.6);
  96.             result.shiftRight();
  97.             let check = result.toString();
  98.             expect(check).to.equal("-5.6");
  99.         });
  100.  
  101.         it("Shift Right to array with falsy parameters", () => {
  102.             result.add([]);
  103.             result.add("");
  104.             result.shiftRight();
  105.             let check = result.toString();
  106.             expect(check).to.equal(", ");
  107.         });
  108.     });
  109.  
  110.  
  111.     describe("Swap", () => {
  112.  
  113.  
  114.         it("Swap with parameters strings", () => {
  115.             result.add(7);
  116.             result.add(12);
  117.             result.add(3);
  118.             let check = result.toString();
  119.             let returned = result.swap(5, "gosho");
  120.  
  121.             expect(check).to.equal("7, 12, 3");
  122.             expect(returned).to.equal(false);
  123.         });
  124.  
  125.         it("Swap with parameters strings", () => {
  126.             result.add(7);
  127.             result.add(12);
  128.             result.add(3);
  129.             let check = result.toString();
  130.             let returned = result.swap("pesho",5);
  131.  
  132.             expect(check).to.equal("7, 12, 3");
  133.             expect(returned).to.equal(false);
  134.         });
  135.  
  136.         it("Swap with parameters numbers, but as strings", () => {
  137.             result.add(7);
  138.             result.add(12);
  139.             result.add(3);
  140.             let check = result.toString();
  141.             let returned = result.swap(2, "1");
  142.  
  143.             expect(check).to.equal("7, 12, 3");
  144.             expect(returned).to.equal(false);
  145.         });
  146.  
  147.         it("Swap with parameters numbers, but as strings", () => {
  148.             result.add(7);
  149.             result.add(12);
  150.             result.add(3);
  151.             let check = result.toString();
  152.             let returned = result.swap("1", 5);
  153.  
  154.             expect(check).to.equal("7, 12, 3");
  155.             expect(returned).to.equal(false);
  156.         });
  157.  
  158.         it("Swap with parameters numbers, but as strings", () => {
  159.             result.add(7);
  160.             result.add(12);
  161.             result.add(3);
  162.             let check = result.toString();
  163.             let returned = result.swap("2", "1");
  164.  
  165.             expect(check).to.equal("7, 12, 3");
  166.             expect(returned).to.equal(false);
  167.         });
  168.  
  169.         it("Swap with parameters decimal numbers", () => {
  170.             result.add(7);
  171.             result.add(12);
  172.             result.add(3);
  173.             let check = result.toString();
  174.             let returned = result.swap(4.5, 2);
  175.  
  176.             expect(check).to.be.equal("7, 12, 3");
  177.             expect(returned).to.equal(false);
  178.         });
  179.  
  180.         it("Swap with parameters decimal numbers", () => {
  181.             result.add(7);
  182.             result.add(12);
  183.             result.add(3);
  184.             let check = result.toString();
  185.             let returned = result.swap(2, 4.5);
  186.  
  187.             expect(check).to.be.equal("7, 12, 3");
  188.             expect(returned).to.equal(false);
  189.         });
  190.  
  191.  
  192.  
  193.         it("Swap with negative parameter", () => {
  194.             result.add("true");
  195.             result.add(false);
  196.             result.add(3);
  197.             let returned = result.swap(1, -1);
  198.             let check = result.toString();
  199.  
  200.             expect(check).to.be.equal("true, false, 3");
  201.             expect(returned).to.equal(false);
  202.         });
  203.  
  204.         it("Swap with negative parameter", () => {
  205.             result.add("true");
  206.             result.add(false);
  207.             result.add(3);
  208.             let returned = result.swap(-1, 1);
  209.             let check = result.toString();
  210.  
  211.             expect(check).to.equal("true, false, 3");
  212.             expect(returned).to.equal(false);
  213.         });
  214.  
  215.         it("Swap with parameter out of range", () => {
  216.             result.add("Monday");
  217.             result.add(-5.6);
  218.             result.add("Ferrari");
  219.             let returned = result.swap(1, 4);
  220.             let check = result.toString();
  221.  
  222.             expect(check).to.equal("Monday, -5.6, Ferrari");
  223.             expect(returned).to.equal(false);
  224.         });
  225.  
  226.         it("Swap with parameter out of range", () => {
  227.             result.add("Monday");
  228.             result.add(-5.6);
  229.             result.add("Ferrari");
  230.             let returned = result.swap(4, 1);
  231.             let check = result.toString();
  232.  
  233.             expect(check).to.equal("Monday, -5.6, Ferrari");
  234.             expect(returned).to.equal(false);
  235.         });
  236.  
  237.         it("Swap with equal parameters", () => {
  238.             result.add("pesho");
  239.             result.add("gosho");
  240.             result.add(3);
  241.             let returned = result.swap(1, 1);
  242.             let check = result.toString();
  243.  
  244.             expect(check).to.equal("pesho, gosho, 3");
  245.             expect(returned).to.equal(false);
  246.         });
  247.  
  248.         it("Swap with valid parameters", () => {
  249.             result.add("pesho");
  250.             result.add(false);
  251.             result.add(3);
  252.             let returned = result.swap(1, 0);
  253.             let check = result.toString();
  254.  
  255.             expect(check).to.be.equal("false, pesho, 3");
  256.             expect(returned).to.equal(true);
  257.         });
  258.  
  259.         it("Swap with valid parameters", () => {
  260.             result.add(1);
  261.             result.add(-2);
  262.             result.add(3);
  263.             result.add(4.5);
  264.             let returned = result.swap(3, 1);
  265.             let check = result.toString();
  266.  
  267.             expect(check).to.be.equal("1, 4.5, 3, -2");
  268.             expect(returned).to.equal(true);
  269.         });
  270.  
  271.         it("Swap with no parameters", () => {
  272.             result.add(7);
  273.             result.add(12);
  274.             result.add(3);
  275.             let check = result.toString();
  276.             let returned = result.swap();
  277.  
  278.             expect(check).to.equal("7, 12, 3");
  279.             expect(returned).to.equal(false);
  280.         });
  281.  
  282.         it("Swap with only one parameter", () => {
  283.             result.add(7);
  284.             result.add(12);
  285.             result.add(3);
  286.             let check = result.toString();
  287.             let returned = result.swap(5);
  288.  
  289.             expect(check).to.equal("7, 12, 3");
  290.             expect(returned).to.equal(false);
  291.         });
  292.     })
  293.  
  294.  
  295. /*
  296. describe("swap", function () {
  297.     it('with a negative first index, should return false', function () {
  298.         result.add('one');
  299.         result.add(2);
  300.         expect(result.swap(-5, 1)).to.equal(false);
  301.     });
  302.  
  303.     it('with a negative first index, should not change the collection', function () {
  304.         result.add('one');
  305.         result.add('two');
  306.         result.swap(-5, 1);
  307.         expect(result.toString()).to.equal("one, two");
  308.     });
  309.  
  310.     it('with a non integer first index, should return false', function () {
  311.         result.add('one');
  312.         result.add('two');
  313.         expect(result.swap('stamat', 1)).to.equal(false);
  314.     });
  315.  
  316.     it('with a non integer first index, should not change the collection', function () {
  317.         result.add('one');
  318.         result.add('two');
  319.         result.swap([4, 13], 1);
  320.         expect(result.toString()).to.equal("one, two");
  321.     });
  322.  
  323.     it('with first index equal to number of elements, should return false', function () {
  324.         result.add('one');
  325.         result.add('two');
  326.         result.add('three');
  327.         expect(result.swap(3, 1)).to.equal(false);
  328.     });
  329.  
  330.     it('with first index equal to number of elements, should not change the collection', function () {
  331.         result.add('one');
  332.         result.add('two');
  333.         result.add('three');
  334.         result.swap(3, 1);
  335.         expect(result.toString()).to.equal("one, two, three");
  336.     });
  337.  
  338.     it('with a negative second index, should return false', function () {
  339.         result.add('one');
  340.         result.add(2);
  341.         expect(result.swap(0, -1)).to.equal(false);
  342.     });
  343.  
  344.     it('with a negative second index, should not change the collection', function () {
  345.         result.add('one');
  346.         result.add('two');
  347.         result.swap(0, -1);
  348.         expect(result.toString()).to.equal("one, two");
  349.     });
  350.  
  351.     it('with a non integer second index, should return false', function () {
  352.         result.add('one');
  353.         result.add('two');
  354.         expect(result.swap(0, 'stamat')).to.equal(false);
  355.     });
  356.  
  357.     it('with a non integer second index, should not change the collection', function () {
  358.         result.add('one');
  359.         result.add('two');
  360.         result.swap(0, [4, 13]);
  361.         expect(result.toString()).to.equal("one, two");
  362.     });
  363.  
  364.     it('with second index equal to number of elements, should return false', function () {
  365.         result.add('one');
  366.         result.add('two');
  367.         result.add('three');
  368.         expect(result.swap(0, 3)).to.equal(false);
  369.     });
  370.  
  371.     it('with second index equal to number of elements, should not change the collection', function () {
  372.         result.add('one');
  373.         result.add('two');
  374.         result.add('three');
  375.         result.swap(0, 3);
  376.         expect(result.toString()).to.equal("one, two, three");
  377.     });
  378.  
  379.     it('with equal indexes, should return false', function () {
  380.         result.add('one');
  381.         result.add('two');
  382.         result.add('three');
  383.         expect(result.swap(1, 1)).to.equal(false);
  384.     });
  385.  
  386.     it('with equal indexes, collection should stay the same', function () {
  387.         result.add('one');
  388.         result.add('two');
  389.         result.add('three');
  390.         result.swap(1, 1);
  391.         expect(result.toString()).to.equal("one, two, three");
  392.     });
  393.  
  394.     it('with zero first index, should return true', function () {
  395.         result.add('one');
  396.         result.add('two');
  397.         result.add('three');
  398.         expect(result.swap(0, 1)).to.equal(true)
  399.     });
  400.  
  401.     it('with zero second indexes, should return true', function () {
  402.         result.add('one');
  403.         result.add('two');
  404.         result.add('three');
  405.         expect(result.swap(2, 0)).to.equal(true);
  406.     });
  407.  
  408.     it('with zero first index, should swap the values', function () {
  409.         result.add('one');
  410.         result.add('two');
  411.         result.add('three');
  412.         result.swap(0, 2);
  413.         expect(result.toString()).to.equal("three, two, one");
  414.     });
  415.  
  416.     it('with zero second index, should swap the values', function () {
  417.         result.add('one');
  418.         result.add('two');
  419.         result.add('three');
  420.         result.swap(1, 0);
  421.         expect(result.toString()).to.equal("three, two, one");
  422.     });
  423. });
  424. */
  425.  
  426.     describe("toString", () => {
  427.         it("toString", () => {
  428.             result.add(7);
  429.             result.add(12);
  430.             result.add(3);
  431.             let check = result.toString();
  432.  
  433.             expect(check).to.be.equal("7, 12, 3");
  434.         });
  435.  
  436.         it("toString with empty array", () => {
  437.             let check = result.toString();
  438.  
  439.             expect(check).to.be.equal("");
  440.         });
  441.  
  442.         it("toString with boolean", () => {
  443.             result.add(true);
  444.             result.add(false);
  445.             let check = result.toString();
  446.  
  447.             expect(check).to.be.equal("true, false");
  448.         });
  449.  
  450.         it("toString with null", () => {
  451.             result.add(null);
  452.             let check = result.toString();
  453.  
  454.             expect(check).to.be.equal("");
  455.         });
  456.  
  457.         it("toString with undefined", () => {
  458.             result.add(undefined);
  459.             let check = result.toString();
  460.  
  461.             expect(check).to.be.equal("");
  462.         });
  463.  
  464.         it("toString with an object", () => {
  465.             result.add({});
  466.             let check = result.toString();
  467.  
  468.             expect(check).to.be.equal("[object Object]");
  469.         });
  470.     })
  471. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement