added a test suite that works to a point but isnt precise enough to time ths function fully