16 정적읽기 전용 문자열 PROPERTIES_FILE =
"슬롯 사이트 추천properties";
20 정적로거 로거 = LogManager.GetCurrentClassLogger();
23 공개 정적 무효OneTimeSetup()
25로거.디버그(
"TestGAMSIterator | OneTimeSetup");
26workingDir =
가정부 관리인.gamsAbsoluteWorkingDir;
28로거.디버그(
"TestGAMSIterator | oneTimeSetup");
32testDir = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, 테스트 이름);
38 공개 정적 공허OneTimeTearDown()
43 공개 정적IEnumerable<객체[]> TestData()
47 객체[,] waterData =
신규 객체[,] {
48{
"수요", (int)gamsglobals.dt_par, 1,
"", 8736 },
49{
"교환", (int)gamsglobals.dt_par, 1,
"", 7033 },
50{
"w용량", (int)gamsglobals.dt_par, 2,
"", 156 },
51{
"w가격", (int)gamsglobals.dt_par, 2,
"", 104 },
52{
"wInflow", (int)gamsglobals.dt_par, 1,
"", 52 },
53{
"sw_Inflow", (int)gamsglobals.dt_par, 2,
"", 624 }
55 객체[,] mvData =
신규 객체[,] {
56{
"나", (int)gamsglobals.dt_set, 1,
"", 200 },
57{
"Q", (int)gamsglobals.dt_par, 2,
"", 40000 },
58{
"알파", (int)gamsglobals.dt_par, 1,
"", 200 },
59{
"ell", (int)gamsglobals.dt_par, 1,
"", 200 },
60{
"u", (int)gamsglobals.dt_par, 1,
"", 200 },
61{
"로", (int)gamsglobals.dt_par, 0,
"", 1 }
63 객체[,] 수요데이터 =
신규 객체[,] {
64{
"수요", (int)gamsglobals.dt_par, 1,
"경우에 따라 시장 j의 수요", 3 },
65{
"시장", (int)gamsglobals.dt_set, 1,
"시장", 3 }
67 객체[,] 수송데이터 =
신규 객체[,] {
68{
"나", (int)gamsglobals.dt_set, 1,
"통조림 공장", 2 },
69{
"j", (int)gamsglobals.dt_set, 1,
"시장", 3 },
70{
"a", (int)gamsglobals.dt_par, 1,
"케이스에 있는 식물 i의 용량", 2 },
71{
"b", (int)gamsglobals.dt_par, 1,
"경우에 따라 시장 j의 수요", 3 },
72{
"c", (int)gamsglobals.dt_par, 2,
"케이스당 운송 비용 수천 달러", 6 },
73{
"d", (int)gamsglobals.dt_par, 2,
"수천 마일 단위의 거리", 6 },
74{
"f", (int)gamsglobals.dt_par, 0,
"1,000마일당 케이스당 화물(달러)", 1 },
75{
"x", (int)gamsglobals.dt_var, 2,
"케이스의 배송 수량", 6 },
76{
"z", (int)gamsglobals.dt_var, 0,
"총 운송 비용은 수천 달러입니다", 1},
77{
"비용", (int)gamsglobals.dt_equ, 0,
"목적 함수 정의", 1},
78{
"공급", (int)gamsglobals.dt_equ, 1,
"공장 i의 공급 제한을 준수하십시오", 2},
79{
"수요", (int)gamsglobals.dt_equ, 1,
"시장 j의 수요를 충족시키세요", 3}
81 객체[,] UNStatisticsData =
신규 객체[,] {
82{
"국가", (int)gamsglobals.dt_set, 1,
"", 255 },
83{
"신뢰성", (int)gamsglobals.dt_set, 1,
"", 7 },
84{
"바르데프", (int)gamsglobals.dt_set, 1,
"이것은 데이터 기록을 정의하는 데 사용됩니다.", 8 },
85{
"연도", (int)gamsglobals.dt_set, 1,
"", 51 },
86{
"일", (int)gamsglobals.dt_set, 1,
"", 32 },
87{
"월", (int)gamsglobals.dt_set, 1,
"", 13 },
88{
"rectype", (int)gamsglobals.dt_set, 1,
"", 8 },
89{
"인구", (int)gamsglobals.dt_par, 6,
"", 5972 }
93 신규 객체[] {
"gamslib",
"sddp",
"water.gdx", 물데이터 ,
94 신규 객체[] {
"gamslib",
"pmeanvar",
"mvdata.gdx", mvData ,
95 신규 객체[] {
"데이터 라이브러리",
"GDXInExample1",
"DemandData.gdx", 수요데이터 ,
96 신규 객체[] {
"데이터 라이브러리",
"GDXInExample3",
"Trnsport.gdx", 전송데이터 ,
97 신규 객체[] {
"데이터 라이브러리",
"GDXCOPY예19",
"UNStatistics.gdx", UN통계데이터
101[테스트, TestCaseSource(nameof(TestData))]
102 공개 공허testDeleteSymbolDuringIteration(문자열 libraryName, 문자열 modelName, 문자열 gdxFileName,
객체[,] 기호정보)
105로거.디버그(
"TestGAMSIterator 입력 중 | testDeleteSymbolDuringIteration");
106 if(!
가정부 관리인.PrepareDatabaseFrom(libraryName, modelName, testDir))
108어설션.실패(
"실행할 수 없습니다 ["+ 라이브러리이름 +
" "+ 모델이름 +
"], 테스트에 사용할 수 있는 입력 gdx가 없습니다.");
109로거.디버그(
"TestGAMSIterator 종료 | testDeleteSymbolDuringIteration");
113wsInfo.WorkingDirectory = testDir;
114wsInfo.SystemDirectory =
가정부 관리인.gamsSystemDir;
115wsInfo.Debug =
디버그레벨.끄기;
118파일정보 gdx파일 =
신규FileInfo(Path.Combine(testDir, gdxFileName));
120Assert.AreEqual(symbolsInfo.GetLength(0), db.
NrSymbols,
"기대합니다"+ 기호Info.GetLength(0) +
"의 "기호"+ 모델 이름);
128 그동안(iterator.MoveNext())
131Assert.AreEqual(symbolsInfo[count, 0], db.
GetSymbol((
문자열)symbolsInfo[count, 0]).
이름,
"기대 기호:"+ 기호정보[수, 0]);
135 던지기 신규어설션예외(
"이것은 단지 테스트의 이 부분을 통과하기 위한 것입니다.");
136어설션.실패(
"기호 ["를 삭제할 수 없을 것으로 예상됩니다.+ 기호정보[수, 0] +
50805_50824+ 모델 이름);
138 잡기(AssertionException)
146Assert.AreEqual(numberOfSymbols, db.
NrSymbols,
"기대합니다"+ numberOfSymbols +
"의 " 기호"+ 모델 이름);
147Assert.AreEqual(numberOfSymbols, 개수,
"기대합니다"+ numberOfSymbols +
"의 " 기호"+ 모델 이름);
152로거.디버그(
"TestGAMSIterator 종료 중 | testDeleteSymbolDuringIteration");
155[테스트, TestCaseSource(nameof(TestData))]
156 공개 무효testDeleteAllRecordsDuringIteration(문자열 libraryName, 문자열 modelName, 문자열 gdxFileName,
객체[,] 기호정보)
158로거.디버그(
"TestGAMSIterator 입력 중 | testDeleteAllRecordsDuringIteration");
159 if(!
가정부 관리인.PrepareDatabaseFrom(libraryName, modelName, testDir))
161어설션.실패(
"실행할 수 없습니다 ["+ 라이브러리이름 +
" "+ 모델이름 +
"], 테스트에 사용할 수 있는 입력 gdx가 없습니다.");
162로거.디버그(
"TestGAMSIterator 종료 | testDeleteAllRecordsDuringIteration");
166wsInfo.WorkingDirectory = testDir;
167wsInfo.SystemDirectory =
가정부 관리인.gamsSystemDir;
168wsInfo.Debug =
디버그레벨.꺼짐;
171파일정보 gdxFile =
신규FileInfo(Path.Combine(testDir, gdxFileName));
173Assert.AreEqual(symbolsInfo.GetLength(0), db.
NrSymbols,
"기대합니다"+ 기호Info.GetLength(0) +
"의 " 기호"+ 모델 이름);
177 for (
inti = 0; i < 기호정보.GetLength(0); 나++)
181 intnumberOfRecords = 기호.
번호레코드;
182 intnumberOfDeletedRecords = 0;
188++numberOfDeletedRecords;
189Assert.AreEqual(numberOfRecords - numberOfDeletedRecords, 기호.
번호레코드,
"기록을 기대합니다"+ 키 +
"와 "+ numberOfDeletedRecords +
" "의 기록을 삭제했습니다.+ 모델 이름);
193어설션.실패(
"예상 기호"+ 키 +
" 찾을 수 없습니다.");
197어설션.참(
참,
"예상 기호"+ 키 +
" 찾을 수 없습니다.");
200Assert.AreEqual(0, 기호.
번호레코드,
""에 기록이 없을 것으로 예상됩니다+ 모델 이름);
206로거.디버그(
"TestGAMSIterator 종료 | testDeleteAllRecordsDuringIteration");
209[테스트, TestCaseSource(nameof(TestData))]
210 공개 무효testDeleteRecordDuringIteration(문자열 libraryName, 문자열 modelName, 문자열 gdxFileName,
객체[,] 기호정보)
212로거.디버그(
"TestGAMSIterator 입력 중 | testDeleteRecordDuringIteration");
213 if(!
가정부 관리인.PrepareDatabaseFrom(libraryName, modelName, testDir))
215어설션.실패(
"["을(를) 실행할 수 없습니다.+ 라이브러리이름 +
" "+ 모델이름 +
"], 테스트에 사용할 수 있는 입력 gdx가 없습니다.");
216로거.디버그(
"TestGAMSIterator 종료 중 | testDeleteRecordDuringIteration");
220wsInfo.WorkingDirectory = testDir;
221wsInfo.SystemDirectory =
가정부 관리인.gamsSystemDir;
222wsInfo.Debug =
디버그레벨.끄기;
225파일정보 gdx파일 =
신규FileInfo(Path.Combine(testDir, gdxFileName));
227Assert.AreEqual(symbolsInfo.GetLength(0), db.
NrSymbols,
"기대합니다"+ 기호Info.GetLength(0) +
"의 " 기호"+ 모델 이름);
230 for (
inti = 0; i < 기호정보.GetLength(0); 나++)
232목록<string> myList =
신규목록<문자열>();
235 intnumberOfRecords = 기호.
번호레코드;
237 intnumberOfDeletedRecords = 0;
246++numberOfDeletedRecords;
250어설션.실패(
"예상 기호"+ 키 +
" 찾을 수 없습니다.");
254어설션.참(
참,
"예상 기호"+ 키 +
" 찾을 수 없습니다.");
260 foreach(문자열 k
in상징.
기록 찾기(키).
키)
262Assert.AreEqual(keys[idx++], k);
266Assert.AreEqual(numberOfRecords - numberOfDeletedRecords, 기호.
번호레코드,
"기록을 기대합니다"+ 키 +
"와 "+ numberOfDeletedRecords +
"가 "의 기록을 삭제했습니다.+ 모델 이름);
271Assert.AreEqual(번호, 레코드 수, 기호.
이름 +
" 기대합니다 "+ 숫자 +
" "의 레코드 반복+ 모델 이름);
277로거.디버그(
"TestGAMSIterator 종료 중 | testDeleteRecordDuringIteration");