현지의 mDTS = 요구하다('모듈:날짜 테이블 정렬/샌드박스') -- 테스트할 모듈 현지의 DTS = mDTS._export Classes().DTS -- DTS 클래스 현지의 스크리분토 유닛 = 요구하다('모듈:스크리분토 유닛') 현지의 스위트 = 스크리분토 유닛:신규() ------------------------------------------------------------------------------- -- 도우미의 기능과 값 ------------------------------------------------------------------------------- 스위트.당년도 = os.date('*t').연도 스위트.nowrapPattern = '^ <span data% - span% - value = span^ " < > style = " white% - space : nowrap " > [ ^ < > - / span > $ " 스위트.오프밸류 = {오프, '아니요', '아니요', 'n', 'false', 거짓의} 스위트.온밸류 = {켜다', '네', '네', 'y', '진짜', 진실의} 현지의 기능. make On Off Asserts(메이크 온 어사트)(파편) 스위트['실패' .. 파편 .. 'When On'] = 기능. (자신, 첫번째, 기능하다, ...) 위해서 i, 에 에 아이페어(스위트.온밸류) 하다 자신['실패' .. 파편](자신, 첫번째, 기능하다(에), ...) 끝. 끝. 스위트['실패' .. 파편 .. 'When Off'] = 기능. (자신, 첫번째, 기능하다, ...) 위해서 i, 쉬는 에 아이페어(스위트.오프밸류) 하다 자신['실패' .. 파편](자신, 첫번째, 기능하다(쉬는), ...) 끝. 끝. 끝. make On Off Asserts(메이크 온 어사트)('동등') make On Off Asserts(메이크 온 어사트)('문자열 포함') make On Off Asserts(메이크 온 어사트)('NotString Contains') 기능. 스위트:assert Error 포함(양식, 기능하다, 평지) 현지의 성공., 메시지 = pcall(기능하다) 자신:assert False(거짓)(성공.) 자신:assert String 포함(양식, 메시지, 평지) 끝. 기능. 스위트:assertDateEquals(연도, 달, 하루, args) 현지의 dtsObj = DTS.신규(args) 자신:assert Equals(동일)(연도, dtsObj.연도) 자신:assert Equals(동일)(달, dtsObj.달) 자신:assert Equals(동일)(하루, dtsObj.하루) 끝. 기능. 스위트:assertSortKeyEquals(기대됩니다, args) 현지의 dtsObj = DTS.신규(args) 자신:assert Equals(동일)(기대됩니다, dtsObj:make Sort 키()) 끝. 기능. 스위트:assert DisplayEquals(표시등)(기대됩니다, args) 현지의 dtsObj = DTS.신규(args) 자신:assert Equals(동일)(기대됩니다, dtsObj:make 디스플레이()) 끝. ------------------------------------------------------------------------------- -- 날짜 파라미터 테스트 ------------------------------------------------------------------------------- 기능. 스위트:테스트 날짜YMD() 자신:assertDateEquals(2000, 1, 27, {2000, 1, 27}) 끝. 기능. 스위트:테스트 날짜YMonthD() 자신:assertDateEquals(2000, 1, 27, {2000, '1월', 27}) 자신:assertDateEquals(2000, 1, 27, {2000, '1월', 27}) 끝. 기능. 스위트:테스트 날짜YMonD() 자신:assertDateEquals(2000, 1, 27, {2000, '잔', 27}) 자신:assertDateEquals(2000, 1, 27, {2000, '잔, 27}) 끝. 기능. 스위트:테스트 날짜YM() 자신:assertDateEquals(2000, 1, 제로, {2000, 1}) 끝. 기능. 스위트:테스트 날짜YD() 자신:assertDateEquals(2000, 제로, 27, {2000, 제로, 27}) 끝. 기능. 스위트:테스트 날짜MD() 자신:assertDateEquals(제로, 1, 27, {제로, 1, 27}) 끝. 기능. 스위트:테스트 날짜y() 자신:assertDateEquals(2000, 제로, 제로, {2000}) 끝. 기능. 스위트:test Date M() 자신:assertDateEquals(제로, 1, 제로, {제로, 1}) 끝. 기능. 스위트:test Date D() 자신:assertDateEquals(제로, 제로, 27, {제로, 제로, 27}) 끝. 기능. 스위트:test Date Negative Year(음성년)() 자신:assertDateEquals(-2000, 1, 27, {-2000, 1, 27}) 끝. 기능. 스위트:test Date String() 자신:assertDateEquals(2000, 1, 27, {'2000', '1', '27'}) 끝. 기능. 스위트:test Date All Months() 자신:assertDateEquals(제로, 1, 제로, {제로, '1월', 제로}) 자신:assertDateEquals(제로, 2, 제로, {제로, '2월', 제로}) 자신:assertDateEquals(제로, 3, 제로, {제로, '마치, 제로}) 자신:assertDateEquals(제로, 4, 제로, {제로, 에이프릴, 제로}) 자신:assertDateEquals(제로, 5, 제로, {제로, '5월', 제로}) 자신:assertDateEquals(제로, 6, 제로, {제로, 6월, 제로}) 자신:assertDateEquals(제로, 7, 제로, {제로, '7월', 제로}) 자신:assertDateEquals(제로, 8, 제로, {제로, 'August', 제로}) 자신:assertDateEquals(제로, 9, 제로, {제로, '9월', 제로}) 자신:assertDateEquals(제로, 10, 제로, {제로, '10월', 제로}) 자신:assertDateEquals(제로, 11, 제로, {제로, '11월', 제로}) 자신:assertDateEquals(제로, 12, 제로, {제로, '12월', 제로}) 끝. 기능. 스위트:testDateAllMons() 자신:assertDateEquals(제로, 1, 제로, {제로, '잔', 제로}) 자신:assertDateEquals(제로, 2, 제로, {제로, '2월', 제로}) 자신:assertDateEquals(제로, 3, 제로, {제로, '마', 제로}) 자신:assertDateEquals(제로, 4, 제로, {제로, '4월', 제로}) 자신:assertDateEquals(제로, 5, 제로, {제로, '5월', 제로}) 자신:assertDateEquals(제로, 6, 제로, {제로, 준, 제로}) 자신:assertDateEquals(제로, 7, 제로, {제로, '줄, 제로}) 자신:assertDateEquals(제로, 8, 제로, {제로, 'Augue', 제로}) 자신:assertDateEquals(제로, 9, 제로, {제로, 셉, 제로}) 자신:assertDateEquals(제로, 10, 제로, {제로, '10월, 제로}) 자신:assertDateEquals(제로, 11, 제로, {제로, '11월', 제로}) 자신:assertDateEquals(제로, 12, 제로, {제로, 'Dec', 제로}) 끝. ------------------------------------------------------------------------------- -- parseDate 테스트 ------------------------------------------------------------------------------- 기능. 스위트:테스트 년도() 자신:assertDateEquals(2000, 제로, 제로, {'2000'}) 끝. 기능. 스위트:testParse Negative 연도() 자신:assertDateEquals(-2000, 제로, 제로, {'-2000'}) 끝. 기능. 스위트:테스트 파스 스몰이어() 자신:assertDateEquals(12, 제로, 제로, {'12'}) 끝. 기능. 스위트:테스트 파르스YYYMDD() 자신:assertDateEquals(2000, 1, 27, {'2000-01-27'}) 자신:assertDateEquals(2000, 1, 27, {'2000-1-27'}) 자신:assertDateEquals(2000, 1, 6, {'2000-01-06'}) 자신:assertDateEquals(2000, 1, 6, {'2000-01-06'}) 끝. 기능. 스위트:테스트 ParseDMMYYYYY() 자신:assertDateEquals(2000, 1, 27, {'27-01-2000'}) 자신:assertDateEquals(2000, 1, 27, {'27-1-2000'}) 자신:assertDateEquals(2000, 1, 6, {'06-01-2000'}) 끝. 기능. 스위트:테스트 파르스YYYMM() 자신:assertDateEquals(2000, 1, 제로, {'2000-01'}) 자신:assertDateEquals(2000, 1, 제로, {'2000-1'}) 끝. 기능. 스위트:test Parse MonthYYY() 자신:assertDateEquals(1418, 2, 제로, {'1418년 2월'}) 끝. 기능. 스위트:테스트 ParseMonYYYYY() 자신:assertDateEquals(1418, 2, 제로, {'1418년 2월'}) 끝. 기능. 스위트:테스트 Parse DDMonthYYY() 자신:assertDateEquals(1975, 4, 24, {1975년 4월 24일}) 끝. 기능. 스위트:테스트 Parse DDMonYYYYY() 자신:assertDateEquals(1975, 4, 24, {1975년 4월 24일}) 끝. 기능. 스위트:테스트 Parse Month DDYYYY() 자신:assertDateEquals(1975, 4, 24, {1975년 4월 24일}) 자신:assertDateEquals(1975, 4, 24, {1975년 4월 24일}) 끝. 기능. 스위트:테스트 ParseMon DDYYYY() 자신:assertDateEquals(1975, 4, 24, {1975년 4월 24일}) 자신:assertDateEquals(1975, 4, 24, {1975년 4월 24일}) 끝. 기능. 스위트:test Parse Month() 자신:assertDateEquals(제로, 4, 제로, {에이프릴}) 자신:assertDateEquals(제로, 4, 제로, {'4월'}) 끝. 기능. 스위트:테스트 ParseMon() 자신:assertDateEquals(제로, 4, 제로, {'4월'}) 자신:assertDateEquals(제로, 4, 제로, {'실패'}) 끝. 기능. 스위트:테스트 Parse DDMonth() 자신:assertDateEquals(제로, 11, 12, {'11월 12일'}) 끝. 기능. 스위트:테스트 Parse DDMon() 자신:assertDateEquals(제로, 11, 12, {'11월 12일'}) 끝. 기능. 스위트:테스트 Parse Month DD() 자신:assertDateEquals(제로, 11, 12, {'11월 12일'}) 끝. 기능. 스위트:테스트 ParseMonDD() 자신:assertDateEquals(제로, 11, 12, {'11월 12일'}) 끝. 기능. 스위트:테스트 Parse DDMonthYYY() 자신:assertDateEquals(100, 1, 27, {'100년 1월 27일'}) 끝. 기능. 스위트:테스트 Parse DDMonth0YYY() 자신:assertDateEquals(100, 1, 27, {'2001년 1월 27일'}) 끝. 기능. 스위트:테스트 Parse DDMonth000y() 자신:assertDateEquals(3, 1, 27, {'0003년 1월 27일'}) 끝. 기능. 스위트:testParseAllMonths() 자신:assertDateEquals(제로, 1, 제로, {'1월'}) 자신:assertDateEquals(제로, 2, 제로, {'2월'}) 자신:assertDateEquals(제로, 3, 제로, {'마치}) 자신:assertDateEquals(제로, 4, 제로, {에이프릴}) 자신:assertDateEquals(제로, 5, 제로, {'5월'}) 자신:assertDateEquals(제로, 6, 제로, {6월}) 자신:assertDateEquals(제로, 7, 제로, {'7월'}) 자신:assertDateEquals(제로, 8, 제로, {'August'}) 자신:assertDateEquals(제로, 9, 제로, {'9월'}) 자신:assertDateEquals(제로, 10, 제로, {'10월'}) 자신:assertDateEquals(제로, 11, 제로, {'11월'}) 자신:assertDateEquals(제로, 12, 제로, {'12월'}) 끝. 기능. 스위트:테스트 ParseAllMons() 자신:assertDateEquals(제로, 1, 제로, {'잔'}) 자신:assertDateEquals(제로, 2, 제로, {'2월'}) 자신:assertDateEquals(제로, 3, 제로, {'마'}) 자신:assertDateEquals(제로, 4, 제로, {'4월'}) 자신:assertDateEquals(제로, 5, 제로, {'5월'}) 자신:assertDateEquals(제로, 6, 제로, {준}) 자신:assertDateEquals(제로, 7, 제로, {'줄}) 자신:assertDateEquals(제로, 8, 제로, {'Augue'}) 자신:assertDateEquals(제로, 9, 제로, {셉}) 자신:assertDateEquals(제로, 10, 제로, {'10월}) 자신:assertDateEquals(제로, 11, 제로, {'11월'}) 자신:assertDateEquals(제로, 12, 제로, {'Dec'}) 끝. 기능. 스위트:테스트 Parse Sept() 자신:assertDateEquals(제로, 9, 제로, {'9월'}) 자신:assertDateEquals(제로, 9, 제로, {'sept'}) 자신:assertDateEquals(2012, 9, 1, {'2012년 9월 1일'}) 자신:assertDateEquals(2012, 9, 1, {2012, '9월', 1}) 끝. ------------------------------------------------------------------------------- -- 날짜 오류 테스트 ------------------------------------------------------------------------------- 기능. 스위트:testInvalidDateError() 자신:assert Error 포함("foo"는 잘못된 날짜입니다.", 기능. () DTS.신규{'푸'} 끝.) 끝. 기능. 스위트:test Zero Year Error(테스트 제로년 오류)() 자신:assert Error 포함('years는 0일 수 없습니다.', 기능. () DTS.신규{0} 끝.) 끝. 기능. 스위트:test YearNonIntegerError() 자신:assert Error 포함('years는 정수여야 합니다.', 기능. () DTS.신규{2015.5} 끝.) 끝. 기능. 스위트:test Year Low Range Error(테스트 연도 로우 범위 오류)() 자신:assert Error 포함( '연도는 -999,999,999보다 작을 수 없습니다.', 기능. () DTS.신규{-1000000000000} 끝., 진실의 -- 플레인 매치 ) 끝. 기능. 스위트:test Year High Range Error(테스트 연도 하이 레인지 에러)() 자신:assert Error 포함('연도는 999,999,999,999보다 클 수 없습니다.', 기능. () DTS.신규{1000000000000} 끝.) 끝. 기능. 스위트:test Month Error(테스트 월 오류)() 자신:assert Error 포함('param은 1에서 12 사이의 정수여야 합니다.', 기능. () DTS.신규{2000, 0} 끝.) 자신:assert Error 포함('param은 1에서 12 사이의 정수여야 합니다.', 기능. () DTS.신규{2000, 13} 끝.) 끝. 기능. 스위트:test Day Error(테스트일 오류)() 자신:assert Error 포함('days는 1에서 31 사이의 정수여야 합니다.', 기능. () DTS.신규{2000, 1, 0} 끝.) 자신:assert Error 포함('days는 1에서 31 사이의 정수여야 합니다.', 기능. () DTS.신규{2000, 1, 32} 끝.) 끝. 기능. 스위트:테스트() 자신:assert Error 포함( "foo'는 유효한 시대 코드(예상된 'BC', 'BCE', 'AD' 또는 'CE')가 아닙니다.", 기능. () DTS.신규{2000, 1, 27, '푸'} 끝., 진실의 -- 플레인 매치 ) 끝. ------------------------------------------------------------------------------- -- 키 테스트 정렬 ------------------------------------------------------------------------------- 기능. 스위트:testSortKeyYMD() 스위트:assertSortKeyEquals('000000002000-05-27-0000', {2000, 5, 27}) 스위트:assertSortKeyEquals('000000002000-01-27-0000', {2000, 1, 27}) 스위트:assertSortKeyEquals('000000002000-01-01-0000', {2000, 1, 1}) 스위트:assertSortKeyEquals('000000000001-01-01-0000', {1, 1, 1}) 끝. 기능. 스위트:testSortKeyYM() 스위트:assertSortKeyEquals('000000002000-05-01-0000', {2000, 5, 제로}) 끝. 기능. 스위트:testSortKeyYD() 스위트:assertSortKeyEquals('000000002000-01-27-0000', {2000, 제로, 27}) 끝. 기능. 스위트:testSortKeyMD() 스위트:assertSortKeyEquals('00000000' .. 스위트.당년도 .. '-05-27-0000', {제로, 5, 27}) 끝. 기능. 스위트:testSortKeyy() 스위트:assertSortKeyEquals('000000002000-01-01-0000', {2000, 제로, 제로}) 끝. 기능. 스위트:testSortKeym() 스위트:assertSortKeyEquals('00000000' .. 스위트.당년도 .. '-05-01-0000', {제로, 5, 제로}) 끝. 기능. 스위트:testSortKeyd() 스위트:assertSortKeyEquals('00000000' .. 스위트.당년도 .. '-01-27-0000', {제로, 제로, 27}) 끝. 기능. 스위트:test Sort Key Negative(음성)() 스위트:assertSortKeyEquals('-999999999955-05-27-0000', {-45, 5, 27}) 끝. 기능. 스위트:testSortKeyMax년() 스위트:assertSortKeyEquals('999999999999-01-01-0000', {999999999999}) 끝. 기능. 스위트:testSortKeyMinYear() 스위트:assertSortKeyEquals('-000000000001-01-01-0000', {-999999999999}) 끝. 기능. 스위트:testSortKeyBlank() 스위트:assertSortKeyEquals('999999999999-99-99-0000', {}) 끝. ------------------------------------------------------------------------------- -- addkey 테스트 ------------------------------------------------------------------------------- 기능. 스위트:testAdd키() 스위트:assertSortKeyEquals('000000002000-05-27-0003', {2000, 5, 27, 추가 키 = 3}) 스위트:assertSortKeyEquals('000000002000-05-27-0003', {2000, 5, 27, 추가 키 = '3'}) 끝. 기능. 스위트:testAddkeyError(testAddkeyError)() 현지의 메시지 = "'addkey' 매개 변수는 0에서 9999 사이의 정수여야 합니다." 자신:assert Error 포함(메시지, 기능. () DTS.신규{2000, 5, 27, 추가 키 = 3.5} 끝.) 자신:assert Error 포함(메시지, 기능. () DTS.신규{2000, 5, 27, 추가 키 = -1} 끝.) 자신:assert Error 포함(메시지, 기능. () DTS.신규{2000, 5, 27, 추가 키 = 10000} 끝.) 끝. ------------------------------------------------------------------------------- -- 테스트 표시 ------------------------------------------------------------------------------- 기능. 스위트:test Format Default(테스트 포맷 디폴트)() 스위트:assert DisplayEquals(표시등)('2000년 1월 27일', {2000, 1, 27}) 끝. 기능. 스위트:테스트 포맷DMY() 스위트:assert DisplayEquals(표시등)('2000년 1월 27일', {2000, 1, 27, 포맷 = 'dmy'}) 끝. 기능. 스위트:테스트 포맷MDY() 스위트:assert DisplayEquals(표시등)('2000년 1월 27일', {2000, 1, 27, 포맷 = 'mdy'}) 끝. 기능. 스위트:테스트 포맷DM() 스위트:assert DisplayEquals(표시등)('1월 27일', {2000, 1, 27, 포맷 = 'dm'}) 끝. 기능. 스위트:테스트 포맷MD() 스위트:assert DisplayEquals(표시등)('1월 27일', {2000, 1, 27, 포맷 = 'md'}) 끝. 기능. 스위트:테스트 포맷나의() 스위트:assert DisplayEquals(표시등)('2000년 1월', {2000, 1, 27, 포맷 = '내'}) 끝. 기능. 스위트:테스트 포맷y() 스위트:assert DisplayEquals(표시등)('2000', {2000, 1, 27, 포맷 = 'y'}) 끝. 기능. 스위트:testFormatM() 스위트:assert DisplayEquals(표시등)('1월', {2000, 1, 27, 포맷 = 'm'}) 끝. 기능. 스위트:test Format D() 스위트:assert DisplayEquals(표시등)('27', {2000, 1, 27, 포맷 = 'd'}) 끝. 기능. 스위트:test Format Hide(형식 숨기기)() 스위트:assert DisplayEquals(표시등)('', {2000, 1, 27, 포맷 = 숨기다}) 끝. 기능. 스위트:테스트 BCParam() 현지의 결과 = '2000년 1월 27일 BC' 스위트:assert DisplayEquals(표시등)(결과, {2000, 1, 27, 'BC'}) 스위트:assert DisplayEquals(표시등)(결과, {2000, 1, 27, 'BCE'}) 스위트:assert DisplayEquals(표시등)(결과, {2000, 1, 27, 'bc'}) 스위트:assert DisplayEquals(표시등)(결과, {2000, 1, 27, '실패'}) 끝. 기능. 스위트:테스트 BCNegative Year() 스위트:assert DisplayEquals(표시등)('2000년 1월 27일 BC', {-2000, 1, 27}) 끝. 기능. 스위트:Test Large Year 디스플레이() 스위트:assert DisplayEquals(표시등)('1,000,000', {1000000}) 끝. 기능. 스위트:test Large Negative Year 디스플레이() 스위트:assert DisplayEquals(표시등)('100만 & nbsp;BC', {-1000000}) 끝. ------------------------------------------------------------------------------- -- 공백 테스트 ------------------------------------------------------------------------------- 기능. 스위트:테스트 블랭크() 자신:assert String 포함( '^ < span data% - span% - value = span^ " < > -> </span >