모듈:표 도구/테스트 케이스

Module
-- [Module]의 유닛 테스트:표 도구]]]Talk 페이지를 클릭하여 테스트를 실행합니다.  현지의 tt = 요구하다('모듈:표 도구/샌드박스') -- 테스트할 모듈 현지의 스크리분토 유닛 = 요구하다('모듈:스크리분토 유닛') 현지의 스위트 = 스크리분토 유닛:신규()  ------------------------------------------------------------------------ -- 도우미 기능 ------------------------------------------------------------------------  기능. 스위트.콘센트(t)  현지의 리트 = ''  위해서 i, v  아이페어(t) 하다   리트 = 리트 .. 스트링(v)  끝.  돌아가다 리트 끝.  스위트.Nan = tt.Nan  기능. 스위트:assertErrorEquals(에러 등)(기대됩니다, 기능하다, ...)  현지의 성공., 메시지 = pcall(기능하다, ...)  자신:assert Equals(동일)(기대됩니다, 메시지) 끝.  기능. 스위트:assertTypeErrorEquals(argId, 이름., 기대됩니다유형, 실제 타입, 기능하다, ...)  현지의 기대됩니다 = "bad 인수 #%d to '%s'(%s 예상, %s 취득)  기대됩니다 = 기대됩니다:포맷(argId, 이름., 기대됩니다유형, 실제 타입)  자신:assertErrorEquals(에러 등)(기대됩니다, 기능하다, ...) 끝.  ------------------------------------------------------------------------ -- 테스트 is Positive Integer ------------------------------------------------------------------------  기능. 스위트:테스트 Is Positive Integer()  자신:assert True(참)(tt.isPositiveInteger(1))  자신:assert True(참)(tt.isPositiveInteger(2))  자신:assert True(참)(tt.isPositiveInteger(2323874623))  자신:assert False(거짓)(tt.isPositiveInteger(0))  자신:assert False(거짓)(tt.isPositiveInteger(-1))  자신:assert False(거짓)(tt.isPositiveInteger(0.5))  자신:assert False(거짓)(tt.isPositiveInteger(1.5))  자신:assert False(거짓)(tt.isPositiveInteger('1'))  자신:assert False(거짓)(tt.isPositiveInteger(math.matrix))  자신:assert False(거짓)(tt.isPositiveInteger('푸')) 끝.  ------------------------------------------------------------------------ -- 테스트 isNan ------------------------------------------------------------------------  기능. 스위트:테스트 IsNan()  자신:assert True(참)(tt.Nan(0/0))  자신:assert True(참)(tt.Nan(-(0/0)))  자신:assert True(참)(tt.Nan(math.matrix * 0))  자신:assert True(참)(tt.Nan(-math.matrix * 0))  자신:assert True(참)(tt.Nan(-1 * math.matrix * 0))  자신:assert False(거짓)(tt.Nan(0))  자신:assert False(거짓)(tt.Nan(1))  자신:assert False(거짓)(tt.Nan(6))  자신:assert False(거짓)(tt.Nan(-100))  자신:assert False(거짓)(tt.Nan(2^0.5))  자신:assert False(거짓)(tt.Nan(99999999999999999999999999999999999999999999999))  자신:assert False(거짓)(tt.Nan(math.pi)) 끝.  ------------------------------------------------------------------------ -- removeDuplicates 테스트 ------------------------------------------------------------------------  기능. 스위트:test Remove Duplicates(중복 제거)()  현지의 듀페 =     {1, 2, 2, 3, 3, 3, 4, 2, 0/0, 5, -(0/0), 5}  -- 듀프 삭제: {1, 2, 3, 4, NaN, 5, NaN}  현지의 제거된 = tt.중복 제거(듀페)  자신:assert Equals(동일)(7, #제거된)  자신:assert Equals(동일)(1, 제거된[1])  자신:assert Equals(동일)(2, 제거된[2])  자신:assert Equals(동일)(3, 제거된[3])  자신:assert Equals(동일)(4, 제거된[4])  자신:assert True(참)(스위트.Nan(제거된[5]))  자신:assert Equals(동일)(5, 제거된[6])  자신:assert True(참)(스위트.Nan(제거된[7]))  자신:assertTypeErrorEquals(1, '중복 제거', '테이블', '숫자', tt.중복 제거, 4)  자신:assertTypeErrorEquals(1, '중복 제거', '테이블', '실패', tt.중복 제거) 끝.  ------------------------------------------------------------------------ -- 스파스 배열 변수 ------------------------------------------------------------------------  현지의 스파스 어레이 = {1, 제로, 2, 제로, 3, 제로, [math.matrix] = math.matrix, 후우 = '바', [1.5] = 1.5, ['4'] = 'four_string'} 현지의 sparse Array = '123' 현지의 num Keys Connected(연결된 키 수) = '135' 현지의 리버스 스파스 어레이 연결 = '321' 현지의 reverse Num Keys Connected(연결된 리버스 번호) = '531'  ------------------------------------------------------------------------ -- 테스트 numKeys ------------------------------------------------------------------------  기능. 스위트:testnumKeys(테스트 번호)()  현지의 숫자 키 = tt.숫자 키(스파스 어레이)     자신:assert Equals(동일)(num Keys Connected(연결된 키 수), 스위트.콘센트(숫자 키))  자신:assertTypeErrorEquals(1, 'num Keys', '테이블', '숫자', tt.숫자 키, 4)  자신:assertTypeErrorEquals(1, 'num Keys', '테이블', '실패', tt.숫자 키) 끝.  ------------------------------------------------------------------------ -- 테스트 pixNums ------------------------------------------------------------------------  현지의 접사 배열 = {1, a0 = 'a0', a001 = 'a001', a1 = 'a1', b2 = 'b2', a3 = 'a3', c4d = 'c4d', b5 = 'b5', B6 = 'B6', f7 = 'f7', c8d = 'c8d', a9 = 제로, a10 = 'a10', [11] = 11, ['e-f12'] = 'e-f12'} 현지의 aNums Connected(연결) = '1310' 현지의 aVals Connected(연결된 값) = 'a1a3a10' 현지의 bNums Connected(연결) = '25' 현지의 bVals Connected(연결) = 'b2b5' 현지의 cdNums Connected(연결) = '48' 현지의 cdValsConcatenated(연결) = 'c4dc8d' 현지의 efNums 연결 = '12' 현지의 efVals Connected(연결) = 'e-f12'  기능. 스위트.concatAffixVals(t, 숫자, 접두사, 접미사)  현지의 리트 = ''  위해서 i, 숫자  아이페어(숫자) 하다   현지의 열쇠 = (접두사 또는 '') .. 스트링(숫자) .. (접미사 또는 '')   리트 = 리트 .. 스트링(t[열쇠])  끝.  돌아가다 리트 끝.  기능. 스위트:테스트픽스수()  현지의 숫자 = tt.접사 번호(접사 배열, 'a')  현지의 bNums = tt.접사 번호(접사 배열, 'b')  현지의 cdNums = tt.접사 번호(접사 배열, 'c', 'd')  현지의 efNums = tt.접사 번호(접사 배열, 'e-f') "-"는 마법이기 때문에 도망쳐야 합니다.     자신:assert Equals(동일)(aNums Connected(연결), 스위트.콘센트(숫자))     자신:assert Equals(동일)(aVals Connected(연결된 값), 스위트.concatAffixVals(접사 배열, 숫자, 'a'))     자신:assert Equals(동일)(bNums Connected(연결), 스위트.콘센트(bNums))     자신:assert Equals(동일)(bVals Connected(연결), 스위트.concatAffixVals(접사 배열, bNums, 'b'))     자신:assert Equals(동일)(cdNums Connected(연결), 스위트.콘센트(cdNums))     자신:assert Equals(동일)(cdValsConcatenated(연결), 스위트.concatAffixVals(접사 배열, cdNums, 'c', 'd'))     자신:assert Equals(동일)(efNums 연결, 스위트.콘센트(efNums))     자신:assert Equals(동일)(efVals Connected(연결), 스위트.concatAffixVals(접사 배열, efNums, 'e-f'))  자신:assertTypeErrorEquals(1, 'affixNums', '테이블', '숫자', tt.접사 번호, 4)  자신:assertTypeErrorEquals(1, 'affixNums', '테이블', '실패', tt.접사 번호) 끝.  ------------------------------------------------------------------------ -- numData 테스트 ------------------------------------------------------------------------  기능. 스위트:testNumData()  현지의 t = {1, 2, [5] = 5, 후우 = "푸", foo1 = "foo1", 바1 = '바1', foo6 = "foo6", 바6 = '바6'}  현지의 압축되어 있지 않다 = tt.numData(t)  현지의 압축된 = tt.numData(t, 진실의)   -- 비압축 테스트.  자신:assert Equals(동일)(1, 압축되어 있지 않다[1][1])  자신:assert Equals(동일)(2, 압축되어 있지 않다[2][1])  자신:assert Equals(동일)(5, 압축되어 있지 않다[5][1])  자신:assert Equals(동일)("푸", 압축되어 있지 않다.다른..후우)  자신:assert Equals(동일)("foo1", 압축되어 있지 않다[1].후우)  자신:assert Equals(동일)('바1', 압축되어 있지 않다[1].막대기)  자신:assert Equals(동일)("foo6", 압축되어 있지 않다[6].후우)  자신:assert Equals(동일)('바6', 압축되어 있지 않다[6].막대기)  자신:assert Equals(동일)(제로, 압축되어 있지 않다[4])   -- 테스트가 압축되었습니다.  자신:assert Equals(동일)(1, 압축된[1][1])  자신:assert Equals(동일)(2, 압축된[2][1])  자신:assert Equals(동일)(5, 압축된[3][1])  자신:assert Equals(동일)("푸", 압축된.다른..후우)  자신:assert Equals(동일)("foo1", 압축된[1].후우)  자신:assert Equals(동일)('바1', 압축된[1].막대기)  자신:assert Equals(동일)("foo6", 압축된[4].후우)  자신:assert Equals(동일)('바6', 압축된[4].막대기)  자신:assert Equals(동일)(제로, 압축된[5]) 끝.  ------------------------------------------------------------------------ -- 스파스 어레이 함수 테스트 ------------------------------------------------------------------------  기능. 스위트:testCompressSparseArray()  현지의 압축 어레이 = tt.compressSparseArray(스파스 어레이)     자신:assert Equals(동일)(sparse Array, 스위트.콘센트(압축 어레이))  자신:assertTypeErrorEquals(1, 'compressSparseArray', '테이블', '숫자', tt.compressSparseArray, 4)  자신:assertTypeErrorEquals(1, 'compressSparseArray', '테이블', '실패', tt.compressSparseArray) 끝.  기능. 스위트:testSparseIpairs()  현지의 배열 텍스트 = ''  위해서 i, v  tt.스파스아이페어(스파스 어레이) 하다   배열 텍스트 = 배열 텍스트 .. 스트링(v)  끝.  자신:assert Equals(동일)(sparse Array, 배열 텍스트)  자신:assertTypeErrorEquals(1, 'sparseIpairs', '테이블', '숫자', tt.스파스아이페어, 4)  자신:assertTypeErrorEquals(1, 'sparseIpairs', '테이블', '실패', tt.스파스아이페어) 끝.  ------------------------------------------------------------------------ -- 테스트 사이즈 함수 ------------------------------------------------------------------------  기능. 스위트:테스트 사이즈()  자신:assert Equals(동일)(0, tt.크기{})  자신:assert Equals(동일)(3, tt.크기{후우 = '푸', 막대기 = '바', 바즈 = '바즈})  자신:assert Equals(동일)(1, tt.크기{1})  자신:assert Equals(동일)(5, tt.크기{후우 = '푸', 막대기 = '바', 바즈 = '바즈, 1, 2})  자신:assertTypeErrorEquals(1, '사이즈, '테이블', '숫자', tt.크기, 4)  자신:assertTypeErrorEquals(1, '사이즈, '테이블', '실패', tt.크기) 끝.  ------------------------------------------------------------------------ -- binaryLength 함수를 테스트합니다. ------------------------------------------------------------------------  기능. 스위트:test Length Of Empty Table Is Zero()  자신:assert Equals(동일)(0, tt.길이{}) 끝.  기능. 스위트:test Length Of Array()  현지의 데이터. = {"a","b","c","d","e","f"}  자신:assert Equals(동일)(6, tt.길이(데이터.))  현지의 메타 = 설정 가능한({}, {__인덱스 = 데이터.})  자신:assert Equals(동일)(6, tt.길이(메타)) 끝.  기능. 스위트:test Length Of Quasi Array With Prefixs()  현지의 데이터. = {키 1 = '값 1', 키2 = '값 2', 키 3 = "값 3"}  자신:assert Equals(동일)(3, tt.길이(데이터., ))  현지의 메타 = 설정 가능한({}, {__인덱스 = 데이터.})  자신:assert Equals(동일)(3, tt.길이(메타, )) 끝.  기능. 스위트:testLengthChecksForTypeErrors()  자신:assertTypeErrorEquals(1, '길이, '테이블', '숫자', tt.길이, 1)  자신:assertTypeErrorEquals(2, '길이, '문자열, '숫자', tt.길이, {}, 2) 끝.  돌아가다 스위트