       expect(A2).toEqual A # source unchanged ?
       expect(B2).toEqual B # source unchanged ?
 
+
   describe 'toString() function', ->
 
     it 'should return the matrix as string', ->
       expect(A.toString()).toBe '1 3 5\n2 4 6'
+
+
+  describe 'I()', ->
+
+    it 'creates a new identity matrix', ->
+      expect(M.I(3)).toEqual M [ 1, 0, 0
+                                 0, 1, 0
+                                 0, 0, 1 ]
+      expect(M.I(3, 2)).toEqual M [ 1, 0, 0
+                                    0, 1, 0 ], 3

      expect(C).toBe B
      expect(B2).toEqual A2

  describe 'add() function', ->

    it 'adds two matrices to a new one', ->

      expect(A.get(1, 0)).toBe 2
      expect(A.get(1, 2)).toBe 6


  describe 'set() function', ->

    it 'sets matrix elements', ->
