모듈:기하급수적인 검색/테스트 케이스

Module
현지의 서치 = 요구하다('모듈:지수 검색') 현지의 스크리분토 유닛 = 요구하다('모듈:스크리분토 유닛') 현지의 스위트 = 스크리분토 유닛:신규()  현지의 기능. make Test(테스트(n)  돌아가다 기능. (i)   돌아가다 i <=> n  끝. 끝.  기능. 스위트:assert Error(아스텐 에러)(기능하다, ...)  현지의 성공., 리트 = pcall(기능하다, ...)  자신:assert False(거짓)(성공.)  돌아가다 리트 끝.  기능. 스위트:assert Error 메시지(메시지, 기능하다, ...)  현지의 리트 = 자신:assert Error(아스텐 에러)(기능하다, ...)  자신:assert String 포함(메시지, 리트, 진실의) 끝.  기능. 스위트:테스트 펑크 타입()  자신:assert Error(아스텐 에러)(서치, 5)  자신:assert Error(아스텐 에러)(서치, '푸')  자신:assert Error(아스텐 에러)(서치, 진실의)  자신:assert Error(아스텐 에러)(서치, {})  자신:assert Error(아스텐 에러)(서치, 제로) 끝.  기능. 스위트:testInitType()  자신:assert Error(아스텐 에러)(서치, make Test(테스트(0), '푸')  자신:assert Error(아스텐 에러)(서치, make Test(테스트(0), make Test(테스트(0))  자신:assert Error(아스텐 에러)(서치, make Test(테스트(0), 진실의)  자신:assert Error(아스텐 에러)(서치, make Test(테스트(0), {})  자신:assert Error(아스텐 에러)(서치, make Test(테스트(1), '푸') 끝.   기능. 스위트:testInitInteger Check(정수 체크)()  자신:assert Error 메시지(   "인수 #2에서 '지수 검색'에 대한 잘못된 초기 값 '0'이(초기값은 양의 정수여야 함)",   서치, make Test(테스트(0), 0  )  자신:assert Error 메시지(   "인수 #2에서 '지수 검색'에 대한 잘못된 초기 값 '1.5'가 탐지되었습니다(초기 값은 양의 정수여야 함)",   서치, make Test(테스트(0), 1.5  )  자신:assert Error 메시지(   "인수 #2에서 '지수 검색'에 대한 잘못된 초기 값 '-3'이 탐지되었습니다(초기 값은 양의 정수여야 함)",   서치, make Test(테스트(0), -3  )  자신:assert Error 메시지(   "인수 #2에서 잘못된 초기 값 'inf'가 'exponential search'(초기값은 양의 정수여야 함)",   서치, make Test(테스트(0), math.matrix  )  자신:assert Error 메시지(   "인수 #2에서 '지수 검색'에 대한 잘못된 초기 값 '-nan'이 탐지되었습니다(초기값은 양의 정수여야 함)",   서치, make Test(테스트(0), 0/0  ) 끝.  기능. 스위트:test Key Not Found(테스트 키 없음)()  자신:assert Equals(동일)(제로, 서치(make Test(테스트(0))) 끝.  기능. 스위트:testKeyNotFoundInit()  자신:assert Equals(동일)(제로, 서치(make Test(테스트(0), 5)) 끝.  기능. 스위트:테스트 1()  자신:assert Equals(동일)(1, 서치(make Test(테스트(1))) 끝.  기능. 스위트:test1Init1()  자신:assert Equals(동일)(1, 서치(make Test(테스트(1), 1)) 끝.  기능. 스위트:test1Init2()  자신:assert Equals(동일)(1, 서치(make Test(테스트(1), 2)) 끝.  기능. 스위트:test1Init3()  자신:assert Equals(동일)(1, 서치(make Test(테스트(1), 3)) 끝.  기능. 스위트:테스트 2()  자신:assert Equals(동일)(2, 서치(make Test(테스트(2))) 끝.  기능. 스위트:test2Init1()  자신:assert Equals(동일)(2, 서치(make Test(테스트(2), 1)) 끝.  기능. 스위트:test2Init2()  자신:assert Equals(동일)(2, 서치(make Test(테스트(2), 2)) 끝.  기능. 스위트:test2Init3()  자신:assert Equals(동일)(2, 서치(make Test(테스트(2), 3)) 끝.  기능. 스위트:테스트 3()  자신:assert Equals(동일)(3, 서치(make Test(테스트(3))) 끝.  기능. 스위트:test3Init1()  자신:assert Equals(동일)(3, 서치(make Test(테스트(3), 1)) 끝.  기능. 스위트:test3Init2()  자신:assert Equals(동일)(3, 서치(make Test(테스트(3), 2)) 끝.  기능. 스위트:test3Init3()  자신:assert Equals(동일)(3, 서치(make Test(테스트(3), 3)) 끝.  기능. 스위트:테스트 Large Array()  자신:assert Equals(동일)(1234567890, 서치(make Test(테스트(1234567890))) 끝.  기능. 스위트:test LargeInit()  자신:assert Equals(동일)(3, 서치(make Test(테스트(3), 1234567890)) 끝.  돌아가다 스위트