-- [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) 끝. 돌아가다 스위트