Permanently protected module

모듈:단위 테스트

Module

UnitTester는 다른 Lua 스크립트에 대한 장치 테스트를 제공합니다.자세한 내용은 Wikipedia:Lua#Unit_testing]]. 사용자 설명서는 대화 페이지를 참조하십시오. 현지의 유닛 테스터 = {}  현지의 , 똑딱이, 건너다, 해야 할 현지의 result_table_message = 클래스 =\"위키에 사용할 수 있는 단위-위키드-결과\"\n%s\n!! 문자!!예상됨!!실제" 현지의 result_table_live_table_discovery_disc = 클래스 =\"위키에 사용할 수 있는 단위-위키드-결과\"\n%s\n!! 시험!!라이브!!샌드박스!!예상됨"  현지의 결과_표 = { n = 0 } 현지의 result_table_mt = {  삽입하다 = 기능. (자신, ...)   현지의 n = 자신.n   위해서 i = 1, 선택한다.('#', ...) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다    현지의  = 선택한다.(i, ...)    한다면  ~= 영의 그리고나서     n = n + 1     자신[n] =     끝.   끝.   자신.n = n  끝.,  insert_format = 기능. (자신, ...)   자신:삽입하다(string.형식(...))  끝.,  을 속이는 = 테이블.콘캣 } result_table_mt.__index = result_table_mt 상을 차리다(결과_표, result_table_mt)  현지의 num_html = 0 현지의 num_html = 0  현지의 기능. 첫째_차이(s1, s2)  s1, s2 = 끈으로 묶는(s1), 끈으로 묶는(s2)     한다면 s1 == s2 그리고나서 돌아가다 '' 끝.     현지의 맥스. = 수학.min(#s1, #s2)     위해서 i = 1, 맥스. 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다         한다면 s1:후보선수(i,i) ~= s2:후보선수(i,i) 그리고나서 돌아가다 i 끝.     끝.     돌아가다 맥스. + 1 끝.  현지의 기능. return_vargs(...)  돌아가다 ... 끝.  기능. 유닛 테스터:산출량을 계산하다(본문, 기대됩니다, 실제., 옵션들)  전체에 대한 일부 변수를 쉽게 설정할 수 있습니다.  num_html = num_html + 1  현지의 옵션들 = 옵션들 또는 {}    잘못된 고장을 방지하기 위해 스트립 마커를 수리하라는 요청이 있을 경우 수리합니다.  현지의 비교_기대의 = 기대됩니다  현지의 비교한 = 실제.  한다면 옵션들.사원 양식 그리고나서   현지의 양식 = '(\127[^\127]*UNIQ%-%-템플릿 스타일%-)(%x+)(%-QINU[^]\127]*\127)'   현지의 _, expected_marker_id = 비교_기대의:경기(양식)    모듈 렌더링에 템플릿 스타일이 있는 경우 마커를 제거합니다. 잘못된 테스트 실패를 방지하기 위해 예상된 ID를 사용합니다.   한다면 expected_marker_id 그리고나서    비교한 = 비교한:gsub(양식, '%1' .. expected_marker_id .. '%3') 실제 ID를 예상 ID로 바꾸고 패턴의 두 번째 캡처는 무시합니다.    비교_기대의 = 비교_기대의:gsub(양식, '%1' .. expected_marker_id .. '%3')  다른 스트립 마커 설명   끝.  끝.  한다면 옵션들.스트립 마커 그리고나서   현지의 양식 = '(\127[^\127]*UNIQ%-%-%l+%-)(%x+)(%-%-?QINU[^\127]*\127)'   현지의 _, expected_marker_id = 비교_기대의:경기(양식)   한다면 expected_marker_id 그리고나서    비교한 = 비교한:gsub(양식, '%1' .. expected_marker_id .. '%3')    비교_기대의 = 비교_기대의:gsub(양식, '%1' .. expected_marker_id .. '%3')   끝.  끝.    비교 수행  현지의 성공. = 비교한 == 비교_기대의  한다면 것은 아니다. 성공. 그리고나서   num_html = num_html + 1  끝.    결과를 표시하기 위한 위키 텍스트 정렬  한다면 옵션들.합쳐진 그리고나서   예상 열과 실제 열에 사용할 수 있는 두 개의 행이 필요합니다.   위쪽은 구문 분석되고 아래쪽은 구문 분석되지 않습니다.   현지의 에 있어서 다른 = 자신.에 있어서 다른 그리고. ('\nrowspan=2' .. 첫째_차이(비교_기대의, 비교한)) 또는 ''   강조 표시할 수 있는 눈금/십자의 로컬 복사본   현지의 하이라이트 = (해야 할 그리고. 것은 아니다. 성공. 그리고. 'style="배경:#fc0;") 또는 ''   결과_표:삽입하다(             시작출력    '  ', 하이라이트, 'rowspan=2', 성공. 그리고. 똑딱이 또는 건너다,   눈금/십자(2행)    '\nrowspan=2', mw.본문.노비키(본문), '\n',     검정에 사용된 텍스트(2행)    기대됩니다, '\n', 실제.,           구문 분석된 출력(첫 번째 행)    에 있어서 다른, '\n-\n',           관련된 차이가 있는 경우(2열)    mw.본문.노비키(기대됩니다), '\n', mw.본문.노비키(실제.),   구문 분석되지 않은 출력(두 번째 행)    '\n-\n'               종료출력   )  또 다른   원하는 옵션으로 정상적으로 표시(nowiki/parse)   현지의 에 있어서 다른 = 자신.에 있어서 다른 그리고. ('\n' .. 첫째_차이(비교_기대의, 비교한)) 또는 ''   현지의 서식 지정 = 옵션들.노비키 그리고. mw.본문.노비키 또는 return_vargs   현지의 하이라이트 = (해야 할 그리고. 것은 아니다. 성공. 그리고. 'style="배경:#fc0;") 또는 ''   결과_표:삽입하다(             시작출력    '  ', 하이라이트, 성공. 그리고. 똑딱이 또는 건너다,       눈금/십자    '\n', mw.본문.노비키(본문), '\n',        테스트에 사용된 텍스트    서식 지정(기대됩니다), '\n', 서식 지정(실제.),     포맷된 출력    에 있어서 다른,               관련된 차이가 있는 경우    '\n-\n'               종료출력   )  끝. 끝.  기능. 유닛 테스터:preprocess_message(본문, 기대됩니다, 옵션들)     현지의 실제. = :전처리(본문)     자신:산출량을 계산하다(본문, 기대됩니다, 실제., 옵션들) 끝.  기능. 유닛 테스터:preprocess_message_many(접두어, 접미사, 경우들, 옵션들)     위해서 _, 사례.  짝을 짓다(경우들) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다         자신:preprocess_message(접두어 .. 사례.[1] .. 접미사, 사례.[2], 옵션들)     끝. 끝.  기능. 유닛 테스터:preprocess_process_process(텍스트 1, 텍스트 2, 옵션들)  현지의 실제. = :전처리(텍스트 1)  현지의 기대됩니다 = :전처리(텍스트 2)  자신:산출량을 계산하다(텍스트 1, 기대됩니다, 실제., 옵션들) 끝.  기능. 유닛 테스터:preprocess_messages_messages(생방송의, 샌드박스, 기대됩니다, 옵션들)  현지의 실시간 텍스트 = :전처리(생방송의)  현지의 샌드박스_텍스트 = :전처리(샌드박스)  현지의 하이라이트_라이브 = 거짓의  현지의 highlight_flight = 거짓의  num_html = num_html + 1  한다면 실시간 텍스트 == 기대됩니다 그리고. 샌드박스_텍스트 == 기대됩니다 그리고나서   결과_표:삽입하다('  ', 똑딱이)  또 다른   결과_표:삽입하다('  ', 건너다)   num_html = num_html + 1    한다면 실시간 텍스트 ~= 기대됩니다 그리고나서    하이라이트_라이브 = 진실의   끝.    한다면 샌드박스_텍스트 ~= 기대됩니다 그리고나서    highlight_flight = 진실의   끝.  끝.     현지의 서식 지정 = (옵션들 그리고. 옵션들.노비키 그리고. mw.본문.노비키) 또는 return_vargs     현지의 에 있어서 다른 = 자신.에 있어서 다른 그리고. ('\n' .. 첫째_차이(기대됩니다, 실시간 텍스트) 또는 첫째_차이(기대됩니다, 샌드박스_텍스트)) 또는 ''     결과_표:삽입하다(    '\n',    mw.본문.노비키(생방송의),    해야 할 그리고. 하이라이트_라이브 그리고. '\nstyle="배경: #fc0;" 또는 '\n',    서식 지정(실시간 텍스트),    해야 할 그리고. highlight_flight 그리고. '\nstyle="배경: #fc0;" 또는 '\n',    서식 지정(샌드박스_텍스트),    '\n',    서식 지정(기대됩니다),    에 있어서 다른,    "\n-\n"  ) 끝.  기능. 유닛 테스터:preprocess_message_process_many(접두사 1, 접미사 1, 접두사 2, 접미사 2, 경우들, 옵션들)     위해서 _, 사례.  짝을 짓다(경우들) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다         자신:preprocess_process_process(접두사 1 .. 사례.[1] .. 접미사 1, 접두사 2 .. (사례.[2] 그리고. 사례.[2] 또는 사례.[1]) .. 접미사 2, 옵션들)     끝. 끝.  기능. 유닛 테스터:preprocess_process_message_many(모듈, function_name, 경우들, 옵션들)     위해서 _, 사례.  짝을 짓다(경우들) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   현지의 생방송의 = 모듈 .. " " .. function_name .. " " .. 사례.[1] .. "}}"   현지의 샌드박스 = 모듈 .. "/filename" .. function_name .. " " .. 사례.[1] .. "}}"         자신:preprocess_messages_messages(생방송의, 샌드박스, 사례.[2], 옵션들)     끝. 끝.  기능. 유닛 테스터:동등한(이름., 실제., 기대됩니다, 옵션들)  num_html = num_html + 1     한다면 실제. == 기대됩니다 그리고나서         결과_표:삽입하다('  ', 똑딱이)     또 다른         결과_표:삽입하다('  ', 건너다)         num_html = num_html + 1     끝.     현지의 서식 지정 = (옵션들 그리고. 옵션들.노비키 그리고. mw.본문.노비키) 또는 return_vargs     현지의 에 있어서 다른 = 자신.에 있어서 다른 그리고. ('\n' .. 첫째_차이(기대됩니다, 실제.)) 또는 ''     현지의 과시하는 = 옵션들 그리고. 옵션들.과시하는 또는 return_vargs     결과_표:삽입하다('\n', 이름., '\n',      서식 지정(끈으로 묶는(과시하는(기대됩니다))), '\n',      서식 지정(끈으로 묶는(과시하는(실제.))), 에 있어서 다른, "\n-\n") 끝.  현지의 기능. 깊은 곳에 있는(t1, t2, ignore_mt)     현지의 ty1 = 유형(t1)     현지의 ty2 = 유형(t2)     한다면 ty1 ~= ty2 그리고나서 돌아가다 거짓의 끝.     한다면 ty1 ~= '탁자' 그리고. ty2 ~= '탁자' 그리고나서 돌아가다 t1 == t2 끝.      현지의 mt = 배불리 먹다(t1)     한다면 것은 아니다. ignore_mt 그리고. mt 그리고. mt.__eq 그리고나서 돌아가다 t1 == t2 끝.      위해서 k1, v1  쌍들(t1) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다         현지의 v2 = t2[k1]         한다면 v2 == 영의 또는 것은 아니다. 깊은 곳에 있는(v1, v2) 그리고나서 돌아가다 거짓의 끝.     끝.     위해서 k2, v2  쌍들(t2) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다         현지의 v1 = t1[k2]         한다면 v1 == 영의 또는 것은 아니다. 깊은 곳에 있는(v1, v2) 그리고나서 돌아가다 거짓의 끝.     끝.      돌아가다 진실의 끝.  현지의 기능. val_to_str(obj)     현지의 기능. table_key_to_str(k)         한다면 유형(k) == '끈' 그리고. mw.ustring.경기(k, '^[_%a][_%a%d]*
                
) 그리고나서 돌아가다 k 또 다른 돌아가다 '[' .. val_to_str(k) .. ']' 끝. 끝. 한다면 유형(obj) == "문자열" 그리고나서 obj = mw.ustring.gsub(obj, "\n", "\\n") 한다면 mw.ustring.경기(mw.ustring.gsub(obj, '[^\'"]', ''), '^"+
$$SIDE_BOTTOM$$
    $$BOTTOM$$