Permutation

https://codility.com/programmers/lessons/4-counting_elements/perm_check

by levrun

HTML

<script src="https://cdn.jsdelivr.net/jasmine/2.5.2/jasmine.js"></script>
<script src="https://cdn.jsdelivr.net/jasmine/2.5.2/jasmine-html.js"></script>
<script src="https://cdn.jsdelivr.net/jasmine/2.5.2/boot.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/jasmine/2.5.2/jasmine.css">

TypeScript

/*
		https://codility.com/programmers/lessons/4-counting_elements/perm_check/
	  Check whether array A is a permutation.
*/
function solution(A) {
    // write your code in JavaScript (Node.js 6.4.0)
    let set = new Set();
    for(var i = 0; i < A.length; i++) {
    	if(A[i] < 1 || A[i] > A.length || set.has(A[i])) {
      	return 0;
      }
      set.add(A[i]);
    }
    
    return 1;
}

describe("Permutation", function() {
  it("simple  test with permutation", function() {
    var A = [4, 1, 3, 2];
    var result = 1;
    
    expect(solution(A)).toBe(result);
  });
  
  it("simple  test wrong permutation", function() {
    var A = [4, 1, 3];
    var result = 0;
    
    expect(solution(A)).toBe(result);
  });
  
  it("simple  test wrong permutation", function() {
    var A = [4, 0, 3, 3];
    var result = 0;
    
    expect(solution(A)).toBe(result);
  });
  
  it("simple  test wrong permutation", function() {
    var A = [4, 6, 0, 0];
    var result = 0;
    
    expect(solution(A)).toBe(result);
  });
  
  
  
});