Improved det tests and fixed bug

Before the det function changed the original values of the input array/matrix. I fixed this problems and added tests to account for that. I additionally added some more tests and enforced the input to be an array or a matrix since determinants are not defined for other types