로드 중...
검색 중...
일치하는 항목 없음
TestGAMSPerformance.cs
1사용 중시스템;
2사용 중시스템.IO;
3사용 중슬롯 게임;
4사용 중NLog;
5사용 중NUnit.Framework;
6
7네임스페이스GamsApiTests
8{
9[테스트 고정 장치]
10 공개 클래스TestGAMS성능
11{
12 // 대규모 테스트를 위한 항목 수
13 정적 intNR_ITEMS_HUGE_TEST = 1500000;
14
15 // 대규모 테스트를 위한 항목 수(예: testAddingDatabases, testAddingJobs, ...)
16 정적 intNR_ITEMS_BIG_TEST = 1500;
17
18 // 반복에 사용되는 재사용 가능한 테스트 세트
19 정적 GAMSSet거대한TestSet;
20
21[OneTimeSetUp]
22 공개 공허OneTimeSetup()
23{
25
26 // hugeTestSet 채우기
28hugeTestSet = db.AddSet("설정", 1,"테스트 세트");
29
30DateTimeOffset startTime = DateTimeOffset.UtcNow;
31 for (inti = 0; 나는 < NR_ITEMS_HUGE_TEST; 나++)
32{
33거대한TestSet.AddRecord("rec"+ i);
34}
35 더블totalTime = (DateTimeOffset.UtcNow - startTime).TotalSeconds;
36Console.WriteLine("경과 시간: "+ 총시간 +"들");
37어설션.참();
38}
39
40 // 기호에 많은(>1e6) 레코드를 추가하는 테스트
41[테스트]
42 공개 무효testAddingRecords()
43{
46
47 GAMSSet 설정=디비.AddSet("설정", 1,"테스트 세트");
48
49DateTimeOffset startTime = DateTimeOffset.UtcNow;
50 for (inti = 0; 나는 < NR_ITEMS_HUGE_TEST; 나++)
51{
52 설정.AddRecord("rec"+ i);
53}
54 더블totalTime = (DateTimeOffset.UtcNow - startTime).TotalSeconds;
55Console.WriteLine("경과 시간: "+ 총 시간 +"들");
56어설션.참();
57}
58
59 // 데이터베이스에 많은 기호를 추가하는 테스트
60[테스트]
61 공개 공허testAddingSymbols()
62{
63
66
67DateTimeOffset startTime = DateTimeOffset.UtcNow;
68 for (inti = 0; 나는 < NR_ITEMS_HUGE_TEST; 나++)
69{
70 GAMSSet 설정=디비.AddSet("설정"+ 나, 1,"테스트 세트");
71}
72 더블totalTime = (DateTimeOffset.UtcNow - startTime).TotalSeconds;
73Console.WriteLine("경과 시간: "+ 총 시간 +"들");
74어설션.참();
75}
76
77 // 작업공간에 많은 데이터베이스를 추가하는 테스트
78[테스트]
79 공개 공허testAddingDatabases()
80{
81
83
84DateTimeOffset startTime = DateTimeOffset.UtcNow;
85 for (inti = 0; 나는 < NR_ITEMS_BIG_TEST; 나++)
86{
88db.AddSet("어떤 집합", 1).AddRecord("rec1");
89Assert.AreEqual(1, db.GetSet("어떤 집합").흐릿함);
90}
91 더블totalTime = (DateTimeOffset.UtcNow - startTime).TotalSeconds;
92Console.WriteLine("경과 시간: "+ 총 시간 +"들");
93어설션.참();
94}
95
96 // 작업공간에 많은 작업을 추가하는 테스트
97[테스트]
98 공개 무효testAddingJobs()
99{
100
102
103DateTimeOffset startTime = DateTimeOffset.UtcNow;;
104 for (inti = 0; 나는 < NR_ITEMS_BIG_TEST; 나++)
105{
106 GAMSJobj = ws.AddJobFromGamsLib("다이어트");
107}
108 더블totalTime = (DateTimeOffset.UtcNow - startTime).TotalSeconds;
109Console.WriteLine("경과 시간: "+ 총 시간 +"들");
110어설션.참();
111}
112
113 // 작업공간에 많은 옵션을 추가하는 테스트
114[테스트]
115 공개 공허testAddingOptions()
116{
117
119
120DateTimeOffset startTime = DateTimeOffset.UtcNow;;
121 for (inti = 0; 나는 < NR_ITEMS_BIG_TEST; 나++)
122{
124}
125 더블totalTime = (DateTimeOffset.UtcNow - startTime).TotalSeconds;
126Console.WriteLine("경과 시간: "+ 총 시간 +"들");
127어설션.참();
128}
129
130 // 매우 큰 기호에 대한 모든 레코드에 대한 반복 테스트
131[테스트]
132 공개 공허testIteratingRecords()
133{
134
135DateTimeOffset startTime = DateTimeOffset.UtcNow;;
136 inti = 0;
137 foreach (GAMSSetRecordrecin거대한TestSet)
138{
139i++;
140}
141 더블totalTime = (DateTimeOffset.UtcNow - startTime).TotalSeconds;
142Console.WriteLine("경과 시간: "+ 총 시간 +"들");
143Assert.AreEqual(NR_ITEMS_HUGE_TEST, i);
144}
145
146 // 많은(>1e3) 작은 GAMSJob 실행(또는 동일한 작업을 여러 번 실행)
147[테스트]
148 공개 공허testRunningJobs()
149{
150
152 GAMSJob직업 = ws.AddJobFromGamsLib("trnsport");
153
154DateTimeOffset startTime = DateTimeOffset.UtcNow;;
155 for (inti = 0; 나는 < NR_ITEMS_BIG_TEST; 나++)
156{
157직업.실행();
158}
159 더블totalTime = (DateTimeOffset.UtcNow - startTime).TotalSeconds;
160Console.WriteLine("경과 시간: "+ 총 시간 +"들");
161어설션.참();
162}
163
164 // 많은 GAMSModelInstance를 복제하고 해결하는 테스트
165[테스트]
166 공개 무효testDuplicatingModelInstances()
167{
168
171 GAMSJob직업 = ws.AddJobFromGamsLib("trnsport");
172직업.실행(cp);
173
175mi.인스턴스화("운송은 lp min z를 사용합니다");
176mi.해결();
177
178DateTimeOffset startTime = DateTimeOffset.UtcNow;;
179 for (inti = 0; 나는 < NR_ITEMS_BIG_TEST; 나++)
180{
182복사.해결();
183}
184 더블totalTime = (DateTimeOffset.UtcNow - startTime).TotalSeconds;
185Console.WriteLine("경과 시간: "+ 총 시간 +"들");
186어설션.참();
187}
188
189}
190}
GAMSModelInstance AddModelInstance(string modelInstanceName=null)
GAMSSet AddSet(문자열 식별자, int 차원, 문자열 설명텍스트="", SetType setType=SetType.multi)
GAMSSet GetSet(string setIdentifier)
void Run(GAMSOptions gamsOptions=null, GAMSCheckpoint 체크포인트=null, TextWriter 출력=null, Boolean createOutDB=true)
GAMSModelInstance CopyModelinstance(string modelInstanceName=null)
void Solve(SymbolUpdateType 업데이트 유형=SymbolUpdateType.BaseCase, TextWriter 출력=null, GAMSModelInstanceOpt miOpt=null)
void 인스턴스화(문자열 모델 정의, params GAMSModifier[] 수정자)
새 GAMSSetRecord AddRecord(params 문자열[] 키)
GAMSJob AddJobFromGamsLib(문자열 모델, GAMSCheckpoint 체크포인트=null, 문자열 jobName=null)
GAMSDatabase AddDatabase(문자열 데이터베이스 이름=null, 문자열 inModelName=null)
GAMSCheckpoint AddCheckpoint(string checkpointName=null)
GAMSOptions AddOptions(GAMSOptions optFrom=null)