모듈:인수/테스트 케이스

Module
현지의 취득하다 = 요구하다('모듈:인수/샌드박스').취득하다 현지의 스크리분토 유닛 = 요구하다('모듈:스크리분토 유닛') 현지의 스위트 = 스크리분토 유닛:신규()  -------------------------------------------------------------------------- -- 디폴트값 --------------------------------------------------------------------------  현지의 d = {}  d.frame Title(프레임 타이틀) = '프레임 제목' d.parent Title(부모 타이틀) = '부모 직함'  -- precedence-testing 값 d.first FrameArg = '첫 번째 프레임 인수' d.첫 번째 부모 Arg = '첫 번째 부모 인수' d.세컨드 페어런트 아그 = '두 번째 부모 인수' d.unique FrameArg = 'frame 인수 추가' d.unique FrameArgKey = '고유 프레임 키' d.uniqueParentArg = '부모 인수 삭제' d.uniqueParentArgKey = 'UniqueParentArgKey'  -- 트리밍 및 공백 값. -- 이름 있는 파라미터에서 공백이 삭제되기 때문에 이러한 요구에 대응하는 키는 --이것을적절한테스트로하기위한숫자가됩니다. d.공백 Arg = '' d.blank Arg 키 = 100  d.스페이스 아그 = '\n' d.spacesArgKey = 101 d.unimmedArg(암호 없음) = '\nfoo 바 d.unimmedArgKey(미설정 Arg키) = 102 d.트리밍아그 = '푸바' d.값 펑크 값 = 'valueFuncValue' d.default Value Func = 기능.() 돌아가다 d.값 펑크 값 끝. d.번역하라 = {  후우 = 'F00',  막대기 = '8@r',  바즈 = '8@z',  쿼크 = 'Qux' }  -------------------------------------------------------------------------- -- 도우미 기능 --------------------------------------------------------------------------  기능. 스위트.get Frames(프레임)(frame Title(프레임 타이틀), 프레임 Args, parent Title(부모 타이틀), 부모 Args)  frame Title(프레임 타이틀) = frame Title(프레임 타이틀) 또는 d.frame Title(프레임 타이틀)  프레임 Args = 프레임 Args 또는 {   d.first FrameArg,   [d.unique FrameArgKey] = d.unique FrameArg,   [d.blank Arg 키] = d.공백 Arg,   [d.spacesArgKey] = d.스페이스 아그,   [d.unimmedArgKey(미설정 Arg키)] = d.unimmedArg(암호 없음)  }  parent Title(부모 타이틀) = parent Title(부모 타이틀) 또는 d.parent Title(부모 타이틀)  부모 Args = 부모 Args 또는 {   d.첫 번째 부모 Arg,   d.세컨드 페어런트 아그,   [d.uniqueParentArgKey] = d.uniqueParentArg  }  현지의 current Frame(현재 프레임) = .get Current Frame(전류 프레임)()  현지의 부모 = current Frame(현재 프레임):새로운 아이{직함 = parent Title(부모 타이틀), args = 부모 Args}  현지의  = 부모:새로운 아이{직함 = frame Title(프레임 타이틀), args = 프레임 Args}  돌아가다 , 부모 끝.  기능. 스위트.getDefaultArgs(옵션들, frame Title(프레임 타이틀), 프레임 Args, parent Title(부모 타이틀), 부모 Args)  현지의 , 부모 = 스위트.get Frames(프레임)(frame Title(프레임 타이틀), 프레임 Args, parent Title(부모 타이틀), 부모 Args)  현지의 args = 취득하다(, 옵션들)  돌아가다 args 끝.  기능. 스위트:assert Error(아스텐 에러)(기능하다, ...)  -- 함수 func를 실행하면 오류가 발생한다고 단언합니다.  -- func 뒤의 파라미터는 func의 인수입니다.  현지의 성공., 메시지 = pcall(기능하다, ...)  자신:assert False(거짓)(성공.) 끝.  기능. 스위트:assertNumberOfIterations(기대됩니다, 리터레이터, t)  현지의 반복 횟수 = 0  위해서 k, v  리터레이터(t) 하다   반복 횟수 = 반복 횟수 + 1  끝.  자신:assert Equals(동일)(기대됩니다, 반복 횟수) 끝.  -------------------------------------------------------------------------- -- 테스트 우선순위 --------------------------------------------------------------------------  기능. 스위트:assert Default Precedence(args)  자신:assert Equals(동일)(d.first FrameArg, args[1])  자신:assert Equals(동일)(d.세컨드 페어런트 아그, args[2])  자신:assert Equals(동일)(d.unique FrameArg, args[d.unique FrameArgKey])  자신:assert Equals(동일)(d.uniqueParentArg, args[d.uniqueParentArgKey]) 끝.  기능. 스위트:test Default Precedence()  자신:assert Default Precedence(스위트.getDefaultArgs()) 끝.  기능. 스위트:test Default Precedence Through Wrapper()  자신:assert Default Precedence(스위트.getDefaultArgs{포장지 = {d.parent Title(부모 타이틀)}, parent Only(부모 전용) = 거짓의}) 끝.  기능. 스위트:test Default Precedence Through Non Wrapper()  자신:assert Default Precedence(스위트.getDefaultArgs({포장지 = d.parent Title(부모 타이틀), 프레임만 = 거짓의}, 제로, 제로, '부모 타이틀 아님')) 끝.  기능. 스위트:assert Parent First(부모 우선)(args)  자신:assert Equals(동일)(d.첫 번째 부모 Arg, args[1])  자신:assert Equals(동일)(d.세컨드 페어런트 아그, args[2])  자신:assert Equals(동일)(d.unique FrameArg, args[d.unique FrameArgKey])  자신:assert Equals(동일)(d.uniqueParentArg, args[d.uniqueParentArgKey]) 끝.  기능. 스위트:test Parent First(부모 우선)()  자신:assert Parent First(부모 우선)(스위트.getDefaultArgs{parent First = 진실의}) 끝.  기능. 스위트:testParentFirstThroughWrapper()  자신:assert Parent First(부모 우선)(스위트.getDefaultArgs{포장지 = {d.parent Title(부모 타이틀)}, parent Only(부모 전용) = 거짓의, parent First = 진실의}) 끝.  기능. 스위트:test Parent First Through Non Wrapper()  자신:assert Parent First(부모 우선)(스위트.getDefaultArgs({포장지 = d.parent Title(부모 타이틀), 프레임만 = 거짓의, parent First = 진실의}, 제로, 제로, '부모 타이틀 아님')) 끝.  기능. 스위트:assert Parent Only(부모 전용)(args)  자신:assert Equals(동일)(d.첫 번째 부모 Arg, args[1])  자신:assert Equals(동일)(d.세컨드 페어런트 아그, args[2])  자신:assert Equals(동일)(제로, args[d.unique FrameArgKey])  자신:assert Equals(동일)(d.uniqueParentArg, args[d.uniqueParentArgKey]) 끝.  기능. 스위트:test Parent Only(부모 전용)()  자신:assert Parent Only(부모 전용)(스위트.getDefaultArgs{parent Only(부모 전용) = 진실의}) 끝.  기능. 스위트:test Parent Only(부모 전용)스루 래퍼()  자신:assert Parent Only(부모 전용)(스위트.getDefaultArgs{포장지 = {d.parent Title(부모 타이틀)}}) 끝.  기능. 스위트:test Parent Only(부모 전용)Through Sandbox Wrapper()  자신:assert Parent Only(부모 전용)(스위트.getDefaultArgs({포장지 = d.parent Title(부모 타이틀)}, 제로, 제로, d.parent Title(부모 타이틀) .. '/filename')) 끝.  기능. 스위트:assert Frame Only(ASST 프레임만)(args)  자신:assert Equals(동일)(d.first FrameArg, args[1])  자신:assert Equals(동일)(제로, args[2])  자신:assert Equals(동일)(d.unique FrameArg, args[d.unique FrameArgKey])  자신:assert Equals(동일)(제로, args[d.uniqueParentArgKey]) 끝.  기능. 스위트:test Frame Only(테스트 프레임만)()  자신:assert Frame Only(ASST 프레임만)(스위트.getDefaultArgs{프레임만 = 진실의}) 끝.  기능. 스위트:test Frame Only(테스트 프레임만)스루논래퍼()  자신:assert Frame Only(ASST 프레임만)(스위트.getDefaultArgs({포장지 = d.parent Title(부모 타이틀)}, 제로, 제로, '부모 타이틀 아님')) 끝.  기능. 스위트:test Default Precedence With Whitespace()  현지의 , 부모 = 스위트.get Frames(프레임)(   d.frame Title(프레임 타이틀),   {'  '},   d.parent Title(부모 타이틀),   {d.첫 번째 부모 Arg}  )  현지의 args = 취득하다()  자신:assert Equals(동일)(d.첫 번째 부모 Arg, args[1]) 끝.  -------------------------------------------------------------------------- -- 트리밍 및 블랭크 제거 테스트 --------------------------------------------------------------------------  기능. 스위트:testDefaultTrimingAndBlankRemoval()  현지의 args = 스위트.getDefaultArgs()  자신:assert Equals(동일)(제로, args[d.blank Arg 키])  자신:assert Equals(동일)(제로, args[d.spacesArgKey])  자신:assert Equals(동일)(d.트리밍아그, args[d.unimmedArgKey(미설정 Arg키)]) 끝.  기능. 스위트:test Remove Blanks But No Triming (블랭크 제거)()  현지의 args = 스위트.getDefaultArgs{다듬다 = 거짓의}  자신:assert Equals(동일)(제로, args[d.blank Arg 키])  자신:assert Equals(동일)(제로, args[d.spacesArgKey])  자신:assert Equals(동일)(d.unimmedArg(암호 없음), args[d.unimmedArgKey(미설정 Arg키)]) 끝.  기능. 스위트:testTrimButNoBlankRemoval()  현지의 args = 스위트.getDefaultArgs{공백 제거 = 거짓의}  자신:assert Equals(동일)(d.공백 Arg, args[d.blank Arg 키])  자신:assert Equals(동일)('', args[d.spacesArgKey])  자신:assert Equals(동일)(d.트리밍아그, args[d.unimmedArgKey(미설정 Arg키)]) 끝.  기능. 스위트:테스트 NoTrimOrBlankRemoval()  현지의 args = 스위트.getDefaultArgs{다듬다 = 거짓의, 공백 제거 = 거짓의}  자신:assert Equals(동일)(d.공백 Arg, args[d.blank Arg 키])  자신:assert Equals(동일)(d.스페이스 아그, args[d.spacesArgKey])  자신:assert Equals(동일)(d.unimmedArg(암호 없음), args[d.unimmedArgKey(미설정 Arg키)]) 끝.  -------------------------------------------------------------------------- -- 테스트 값 Func --------------------------------------------------------------------------  기능. 스위트:test Value Func()  현지의 args = 스위트.getDefaultArgs{값 펑크 = d.default Value Func}  자신:assert Equals(동일)(d.값 펑크 값, args['임의 키: sdfaliwyda']) 끝.  기능. 스위트:test Value Func Precedence()  현지의 args = 스위트.getDefaultArgs{   다듬다 = 거짓의,   공백 제거 = 거짓의,   값 펑크 = d.default Value Func  }  자신:assert Equals(동일)(d.값 펑크 값, args[1])  자신:assert Equals(동일)(d.값 펑크 값, args['무작위 키: gekjabawyvy']) 끝.  기능. 스위트:test Value Func Key()  현지의 args = 스위트.getDefaultArgs{값 펑크 = 기능.(열쇠, 가치)   돌아가다 'valueFunc 키: '.. 열쇠  끝.}  자신:assert Equals(동일)('valueFunc 키: foo', args.후우) 끝.  기능. 스위트:test Value Func Value()  현지의 args = 스위트.getDefaultArgs{값 펑크 = 기능.(열쇠, 가치)   돌아가다 'valueFunc 값: '.. 가치  끝.}  자신:assert Equals(동일)(   'valueFunc 값: ' .. d.unique FrameArg,   args[d.unique FrameArgKey]  ) 끝.  -------------------------------------------------------------------------- -- 새 인수 추가 테스트 --------------------------------------------------------------------------  기능. 스위트:테스트 신규 추가()  현지의 args = 스위트.getDefaultArgs()  자신:assert Equals(동일)(제로, args.새로운 키)  args.새로운 키 = '새로운 키'  자신:assert Equals(동일)('새로운 키', args.새로운 키) 끝.  기능. 스위트:test New Blank Args 추가()  현지의 args = 스위트.getDefaultArgs()  자신:assert Equals(동일)(제로, args.새로운 키)  args.새로운 키 = ''  자신:assert Equals(동일)('', args.새로운 키) 끝.  기능. 스위트:test새로운스페이스추가Args()  현지의 args = 스위트.getDefaultArgs()  자신:assert Equals(동일)(제로, args.새로운 키)  args.새로운 키 = ' '  자신:assert Equals(동일)(' ', args.새로운 키) 끝.  기능. 스위트:테스트 덮어쓰기()  현지의 args = 스위트.getDefaultArgs()  자신:assert Equals(동일)(d.first FrameArg, args[1])  args[1] = '새로운 첫 번째 프레임 인수'  자신:assert Equals(동일)('새로운 첫 번째 프레임 인수', args[1]) 끝.  기능. 스위트:TestOverwriteWithNil()  현지의 args = 스위트.getDefaultArgs()  자신:assert Equals(동일)(d.first FrameArg, args[1])  args[1] = 제로  자신:assert Equals(동일)(제로, args[1]) 끝.  기능. 스위트:testOverwriteWithBlank()  현지의 args = 스위트.getDefaultArgs()  자신:assert Equals(동일)(d.first FrameArg, args[1])  args[1] = ''  자신:assert Equals(동일)('', args[1]) 끝.  기능. 스위트:testOverwriteWithSpaces()  현지의 args = 스위트.getDefaultArgs()  자신:assert Equals(동일)(d.first FrameArg, args[1])  args[1] = ' '  자신:assert Equals(동일)(' ', args[1]) 끝.  기능. 스위트:testReadOnly(읽기 전용)()  현지의 args = 스위트.getDefaultArgs{읽기 전용 = 진실의}  현지의 기능. 테스트 기능()   args.새로운 키 = '새로운 가치'  끝.  자신:assert Error(아스텐 에러)(테스트 기능) 끝.  기능. 스위트:test No Overwrite(오버라이트 없음)기존 키()  현지의 args = 스위트.getDefaultArgs{덮어쓰기 없음 = 진실의}  자신:assert Equals(동일)(d.first FrameArg, args[1])  현지의 기능. 테스트 기능()   args[1] = '새로운 첫 번째 프레임 인수'  끝.  자신:assert Error(아스텐 에러)(테스트 기능) 끝.  기능. 스위트:testNoOverwriteNewKey()  현지의 args = 스위트.getDefaultArgs{덮어쓰기 없음 = 진실의}  자신:assert Equals(동일)(제로, args.새로운 키)  args.새로운 키 = '새로운 가치'  자신:assert Equals(동일)('새로운 가치', args.새로운 키) 끝.  -------------------------------------------------------------------------- -- 잘못된 입력을 테스트합니다. --------------------------------------------------------------------------  기능. 스위트:test Bad Frame Input()  자신:assert Error(아스텐 에러)(취득하다, '푸')  자신:assert Error(아스텐 에러)(취득하다, 9)  자신:assert Error(아스텐 에러)(취득하다, 진실의)  자신:assert Error(아스텐 에러)(취득하다, 기능.() 돌아가다 진실의 끝.) 끝.  기능. 스위트:test Bad Options(테스트 불량 옵션)입력()  자신:assert Error(아스텐 에러)(취득하다, {}, '푸')  자신:assert Error(아스텐 에러)(취득하다, {}, 9)  자신:assert Error(아스텐 에러)(취득하다, {}, 진실의)  자신:assert Error(아스텐 에러)(취득하다, {}, 기능.() 돌아가다 진실의 끝.) 끝.  기능. 스위트:test Bad Value Func Input()  자신:assert Error(아스텐 에러)(취득하다, {}, {값 펑크 = '푸'})  자신:assert Error(아스텐 에러)(취득하다, {}, {값 펑크 = 9})  자신:assert Error(아스텐 에러)(취득하다, {}, {값 펑크 = 진실의})  자신:assert Error(아스텐 에러)(취득하다, {}, {값 펑크 = {}}) 끝.  -------------------------------------------------------------------------- -- 반복기 메타모드 테스트 --------------------------------------------------------------------------  기능. 스위트:테스트 페어()  현지의 args = 취득하다{'푸', '바', 바즈 = 'QUX'}  자신:assertNumberOfIterations(3, 쌍들, args) 끝.  기능. 스위트:테스트()  현지의 args = 취득하다{'푸', '바', 바즈 = 'QUX'}  자신:assertNumberOfIterations(2, 아이페어, args) 끝.  기능. 스위트:테스트 No Nilsin Pairs()  -- 쌍을 사용할 때 0 값을 반복하지 않는지 테스트합니다.  --메모화되어 있습니다.  현지의 args = 취득하다{''}  현지의 임시직 = args[1] -- 0을 메모합니다.  자신:assertNumberOfIterations(0, 쌍들, args) 끝.  기능. 스위트:테스트 No NilsinIpairs()  -- ipair를 사용할 때 제로 값을 반복하지 않는지 테스트합니다.  --메모화되어 있습니다.  현지의 args = 취득하다{''}  현지의 임시직 = args[1] -- 0을 메모합니다.  자신:assertNumberOfIterations(0, 아이페어, args) 끝.  기능. 스위트:test Deleted Args In Pairs(테스트 삭제)()  --쌍을 사용할 때 다음 값을 가진 값을 반복하지 않는지 테스트합니다.  -- 0 으로 명시적으로 설정되어 있습니다.  현지의 args = 취득하다{'푸'}  args[1] = 제로  자신:assertNumberOfIterations(0, 쌍들, args) 끝.  기능. 스위트:test Deleted Args InIpairs()  -- ipairs 를 사용할 때, 다음의 값을 반복하지 않는 것을 테스트합니다.  -- 0 으로 명시적으로 설정되어 있습니다.  현지의 args = 취득하다{'푸'}  args[1] = 제로  자신:assertNumberOfIterations(0, 아이페어, args) 끝.  기능. 스위트:test No Nils In Pairs After Index()  -- 쌍을 사용할 때 nils에 대해 반복하지 않는지 테스트합니다.  -- 에 존재하지 않는 값 뒤에 메모가 되어 있을 가능성이 있습니다.  -- original args 테이블이 색인화 됩니다.  현지의 args = 취득하다{}  현지의 임시직 = args.일부 랜덤 값 -- 0을 메모합니다.  자신:assertNumberOfIterations(0, 쌍들, args) 끝.  기능. 스위트:test No Nils In Pairs After Newindex()  -- 쌍을 사용할 때 nils에 대해 반복하지 않는지 테스트합니다.  -- 에 존재하지 않는 값 뒤에 메모가 되어 있을 가능성이 있습니다.  -- original args 테이블이 args 테이블에 추가됩니다.  현지의 args = 취득하다{}  args.새로운 키 = 제로 -- 0은 메모되어 있습니다.  자신:assertNumberOfIterations(0, 쌍들, args) 끝.  기능. 스위트:testNoTableLengthChangeItiting중()  -- 인수의 개수가 변경되지 않는 것을 테스트합니다.  -- args 테이블이 반복됩니다.  -- (새로운 arg 테이블에는 동등한 테스트가 필요하지 않습니다.  -- 인덱스는 사용자 오류이기 때문에 - 그렇게 하면  -- Lua의 next() 함수의 미결정 동작).  현지의 args = 취득하다{'푸', '바', 바즈 = 'QUX'}  자신:assertNumberOfIterations(3, 쌍들, args)  위해서 k, v  쌍들(args) 하다   현지의 임시직 = args[k .. '푸']  끝.  자신:assertNumberOfIterations(3, 쌍들, args) 끝.  기능. 스위트:testPairsPrecedence With Whitespace()  현지의 , 부모 = 스위트.get Frames(프레임)(   d.frame Title(프레임 타이틀),   {'  '},   d.parent Title(부모 타이틀),   {d.첫 번째 부모 Arg}  )  현지의 args = 취득하다()  현지의 실제.  위해서 k, v  쌍들(args) 하다   실제. = v  끝.  자신:assert Equals(동일)(d.첫 번째 부모 Arg, 실제.)  -- 실제로 반복하고 있는지 확인합니다.  자신:assertNumberOfIterations(1, 쌍들, args) 끝.  기능. 스위트:testPairsPrecedence WithNil()  현지의 , 부모 = 스위트.get Frames(프레임)(   d.frame Title(프레임 타이틀),   {},   d.parent Title(부모 타이틀),   {d.첫 번째 부모 Arg}  )  현지의 args = 취득하다()  현지의 실제.  위해서 k, v  쌍들(args) 하다   실제. = v  끝.  자신:assert Equals(동일)(d.첫 번째 부모 Arg, 실제.)  -- 실제로 반복하고 있는지 확인합니다.  자신:assertNumberOfIterations(1, 쌍들, args) 끝.  기능. 스위트:testIpairs EarlyExit()  현지의 할 수 있다 = {}  기능. 할 수 있다.__인덱스(t, k)   한다면 k == 1 그리고나서    돌아가다 '푸'   그렇지 않으면 k == 2 그리고나서    돌아가다 '바'   그렇지 않으면 k == 3 그리고나서    에러('인수 3을 불필요하게 확장')   끝.  끝.  기능. 할 수 있다.__개요(t)   에러('불필요하게 호출된 쌍')  끝.  기능. 할 수 있다.__ipairs(t)   -- 기본 IPair와 동일하게 동작하지만 __index에 대해서는 예외로 합니다.   돌아가다 기능.(t, i)    현지의 v = t[i + 1]    한다면 v ~= 제로 그리고나서     돌아가다 i + 1, v    끝.   끝., t, 0  끝.  현지의 args = 취득하다(설정 가능한({}, 할 수 있다))  위해서 k,v  아이페어(args) 하다   한다면 v == '바' 그리고나서    브레이크.   끝.  끝. 끝.  -------------------------------------------------------------------------- -- 테스트 인수 변환 --------------------------------------------------------------------------  기능. 스위트:테스트 번역색인()  현지의 args = 취득하다({F00 = '하나, ['8@r'] = '둘', ['8@z'] = '3', qUx = '4', 후우 = '실패', 번역되어 있지 않다 = '실패'}, {번역하라 = d.번역하라})  자신:assert Equals(동일)('하나, args.후우)  자신:assert Equals(동일)('둘', args.막대기)  자신:assert Equals(동일)('3', args.바즈)  자신:assert Equals(동일)('4', args.쿼크)  자신:assert Equals(동일)('실패', args.번역되어 있지 않다) 끝.  기능. 스위트:test Translation Pairs(트랜슬레이션 페어)자동 백트랜슬레이트 사용()  현지의 args = 취득하다({F00 = '하나, ['8@r'] = '둘', ['8@z'] = '3', qUx = '4', 후우 = '실패', 번역되어 있지 않다 = '실패'}, {번역하라 = d.번역하라})  현지의 클린아그 = {}  위해서 k,v  쌍들(args) 하다   클린아그[k] = v  끝.  자신:assert Deep Equals(심층 등)(   {    후우 = '하나,    막대기 = '둘',    바즈 = '3',    쿼크 = '4',    번역되어 있지 않다 = '실패'   },   클린아그  ) 끝.  기능. 스위트:test Translation Pairs With Backtranslate()  현지의 args = 취득하다({F00 = '하나, ['8@r'] = '둘', ['8@z'] = '3', qUx = '4', 후우 = '실패', 번역되어 있지 않다 = '실패'}, {번역하라 = d.번역하라, 역번역하다 = {F00 = '푸'}})  현지의 클린아그 = {}  위해서 k,v  쌍들(args) 하다   클린아그[k] = v  끝.  자신:assert Deep Equals(심층 등)(   {    후우 = '하나,    ['8@r'] = '둘',    ['8@z'] = '3',    qUx = '4',    번역되어 있지 않다 = '실패'   },   클린아그  ) 끝.  기능. 스위트:test Translation Pairs(트랜슬레이션 페어)백트랜슬레이트 미포함()  현지의 args = 취득하다({F00 = '하나, ['8@r'] = '둘', ['8@z'] = '3', qUx = '4', 후우 = '실패', 번역되어 있지 않다 = '실패'}, {번역하라 = d.번역하라, 역번역하다 = 거짓의})  현지의 클린아그 = {}  위해서 k,v  쌍들(args) 하다   클린아그[k] = v  끝.  자신:assert Deep Equals(심층 등)(   {    F00 = '하나,    ['8@r'] = '둘',    ['8@z'] = '3',    qUx = '4',    후우 = '실패',    번역되어 있지 않다 = '실패'   },   클린아그  ) 끝.  기능. 스위트:testTranslationNewindex()  현지의 args = 취득하다({F00 = '하나, ['8@r'] = '둘', ['8@z'] = '3', qUx = '4', 후우 = '실패', 번역되어 있지 않다 = '실패'}, {번역하라 = d.번역하라, 역번역하다 = 거짓의})  args.후우 = '1번'  args.번역되어 있지 않다 = 'flash2'  현지의 클린아그 = {}  위해서 k,v  쌍들(args) 하다   클린아그[k] = v  끝.  자신:assert Deep Equals(심층 등)(   {    F00 = '1번',    ['8@r'] = '둘',    ['8@z'] = '3',    qUx = '4',    후우 = '실패',    번역되어 있지 않다 = 'flash2'   },   클린아그  ) 끝.  기능. 스위트:test_filename(테스트)_interface(실행)()  현지의 current Frame(현재 프레임) = .get Current Frame(전류 프레임)()  current Frame(현재 프레임).args[5] = 555;  현지의 args = 취득하다(current Frame(현재 프레임))  자신:assert Equals(동일)('실패', 유형(args.후우)) 끝.  돌아가다 스위트