로드 중...
검색 중...
일치하는 항목 없음
Alias.cs
1사용 중시스템;
2사용 중System.Collections.Generic;
3사용 중System.Linq;
4사용 중시스템.텍스트;
5사용 중System.Text.RegularExpressions;
6사용 중시스템.진단;
7사용 중시스템.IO;
9
10네임스페이스별명
11{
24 클래스별명
25{
26 정적 int메인(문자열[] 인수)
27{
28 시도해 보세요
29{
31 if(Environment.GetCommandLineArgs().Length > 1)
32ws =신규 무료 슬롯 사이트작업공간(systemDirectory: Environment.GetCommandLineArgs()[1]);
33 그밖에
35
36 // 무료 슬롯 사이트 별칭을 포함하는 초기 데이터 생성
37 // OO API는 별칭에 대해 알지 못하며 이를 집합으로 검색합니다.
38 GAMSJobj1 = ws.AddJobFromString(GetDataText());
39j1.실행();
40CheckAliasLogic("j1.OutDB ", j1.아웃DB);
41j1.아웃DB.내보내기("outdb.gdx");
42MyAssert(SameGdxDump(ws,"outdb.gdx", gdxdump1()),"gdxdump outdb.gdx의 예상치 못한 결과");
43
44 // 복사 생성자는 별칭 및 기타를 유지해야 합니다.
46CheckAliasLogic("db ",db);
47db.내보내기("db.gdx");
48MyAssert(SameGdxDump(ws,"db.gdx", gdxdump1()),"gdxdump db.gdx의 예상치 못한 결과");
49
51 GAMSSetii = db2.AddSet(db.GetSet("ii").이름, DB.GetSet("ii").텍스트,"*");
52db.GetSet("ii").CopySymbol(ii);
53
55 무료 슬롯 사이트매개변수aa = db2.매개변수 추가(db.GetParameter("아아").이름, DB.GetParameter("아아").텍스트, ii);
56aaOrig.CopySymbol(aa);
57db2.내보내기("db2.gdx");
58MyAssert(SameGdxDump(ws,"db2.gdx", gdxdump2()),"gdxdump db2.gdx의 예상치 못한 결과");
59
60 // 도메인이 별칭인 경우 도메인은 별칭 세트를 반환해야 합니다.
61 //하지만 DomainsAsStrings는 별칭 이름을 반환해야 합니다.
62MyAssert(((GAMSSet)aaOrig.Domains[0]).이름 =="나", "도메인 세트는 원본 세트여야 합니다");
63MyAssert(aaOrig.DomainsAsStrings[0] =="ii", "문자열인 도메인은 별칭 이름이어야 합니다.");
64}
65 잡기(예외 e)
66{
67Console.WriteLine("###");
68Console.WriteLine("### 예외 발생:"+ e.메시지);
69Console.WriteLine("###");
70 반환1;
71}
72 반환0;
73}
74
75 정적 공허내 주장(부울테스트,문자열msg)
76{
77 if(!테스트)
78 던지다 신규System.Exception(msg);
79}
80
81 정적 공허CheckAliasLogic(문자열접두사,무료 슬롯 사이트데이터베이스aliasDB)
82{
83 // 기호 수 확인
84MyAssert(aliasDB.NrSymbols== 5, 접두사 +"aliasDB에는 NrSymbols=5: i,j,ij,a,aa가 있어야 합니다.");
85
86 intcntSymbols = 0;
87 foreach (GAMSSymbolaliasDB) cntSymbols++;
88MyAssert(cntSymbols == 5, 접두사 +"foreach(aliasDB의 GAMSSymbol 기호)는 i,j,ij,a,aa의 5개 기호를 생성해야 합니다.");
89
90 // 별칭 집합을 검색할 수 있는지 확인하세요.
91MyAssert(aliasDB.GetSet("ii").이름 =="나", 접두사 +"별칭 ii를 요청할 때 i를 설정해야 합니다.");
92MyAssert(aliasDB.GetSet("jj").이름 =="j", 접두사 +"별칭 jj를 요청할 때 j를 설정해야 합니다.");
93MyAssert(aliasDB.GetSet("iijj").이름 =="ij", 접두사 +"별칭 iijj를 요청할 때 ij를 설정해야 합니다.");
94
95 // 도메인 로직 확인
96MyAssert(aliasDB.CheckDomains() ==, 접두사 +"도메인 확인은 true여야 합니다.");
97MyAssert(aliasDB.GetParameter("아아").도메인[0]은GAMSSet, 접두사 +"aa의 도메인[0]이 설정되어야 합니다");
98MyAssert(((GAMSSet)aliasDB.GetParameter("아아").도메인[0]).이름 =="나", 접두사 +"aa의 도메인[0]은 i를 가리켜야 합니다");
99
100aliasDB.GetSet("ii").DeleteRecord("i1");
101MyAssert(aliasDB.CheckDomains() ==거짓, 접두사 +"i1 제거 후 도메인 확인은 false여야 합니다.");
102aliasDB.GetSet("ii").AddRecord("i1");
103MyAssert(aliasDB.CheckDomains() ==, 접두사 +"i1을 다시 추가한 후 도메인을 확인해야 합니다.");
104}
105
106 정적 부울SameGdxDump(무료 슬롯 사이트작업공간ws,문자열gdx파일,문자열예상결과)
107{
108 문자열결과 =문자열.비어 있음;
109ProcessStartInfo 시작 =신규ProcessStartInfo();
110#if __MonoCS__ || __사과__
111start.FileName = ws.SystemDirectory + Path.DirectorySeparatorChar +"gdxdump";
112#else
113start.FileName = ws.SystemDirectory + Path.DirectorySeparatorChar +"gdxdump.exe";
114#endif
115start.Arguments = ws.WorkingDirectory + Path.DirectorySeparatorChar + gdxfile;
116start.UseShellExecute =거짓;
117start.RedirectStandardOutput =;
118 사용 중(프로세스 프로세스 = Process.Start(start))
119{
120 //
121 // StreamReader를 사용하여 프로세스의 모든 텍스트를 읽습니다.
122 //
123 사용 중(StreamReader 리더 = process.StandardOutput)
124{
125결과 = Regex.Replace(reader.ReadToEnd(),@"\s", "");// 공백 제거
126}
127}
128 반환String.Equals(result,expectedResult,StringComparison.OrdinalIgnoreCase);
129}
130
131 정적문자열 GetDataText()
132{
133문자열 데이터 =@"
134i / i1*i3 / 설정
135j / j1*j3 /
136ij / #i:#j /
137별칭 (i,ii), (j,jj), (ij,iijj);
138매개변수
139a(i) / #i 1 /, aa(ii) / #ii 2 /;
140";
141 반환데이터;
142}
143
144 정적문자열 gdxdump1()
145{
146문자열 데이터 =@"
147$oneempty
148
149설정 i(*) /
150'i1',
151'i2',
152'i3' /;
153
154j(*) 설정 /
155'j1',
156'j2',
157'j3' /;
158
159ij 설정(*,*) /
160'i1'.'j1',
161'i2'.'j2',
162'i3'.'j3' /;
163
164별칭 (ii, i);
165
166별칭(jj, j);
167
168별칭(iijj, ij);
169
170매개변수 a(i) /
171'i1' 1,
172'i2' 1,
173'i3' 1 /;
174
175매개변수 aa(ii) /
176'i1' 2,
177'i2' 2,
178'i3' 2 /;
179
180$offempty
181";
182 반환Regex.Replace(데이터,@"\s", "");// 공백 제거
183}
184
185 정적문자열 gdxdump2()
186{
187문자열 데이터 =@"
188$oneempty
189
190설정 i(*) /
191'i1',
192'i2',
193'i3' /;
194
195매개변수 aa(i) /
196'i1' 2,
197'i2' 2,
198'i3' 2 /;
199
200$offempty
201";
202 반환Regex.Replace(데이터,@"\s", "");// 공백 제거
203}
204
205}
206}
GAMSSet AddSet(문자열 식별자, int 차원, 문자열 설명Text="", SetType setType=SetType.multi)
GAMSParameter GetParameter(문자열 매개변수 식별자)
GAMSParameter AddParameter(문자열 식별자, 정수 차원, 문자열 설명텍스트="")
무료 슬롯 사이트데이터베이스 OutDB
void Run(GAMSOptions gamsOptions=null, GAMSCheckpoint 체크포인트=null, TextWriter 출력=null, Boolean createOutDB=true)
GAMSJob AddJobFromString(문자열 gamsSource, GAMSCheckpoint 체크포인트=null, 문자열 jobName=null)
GAMSDatabase AddDatabase(문자열 데이터베이스 이름=null, 문자열 inModelName=null)