2사용 중System.Collections.Generic;
32 if(Environment.GetCommandLineArgs().Length > 1)
33ws =
신규 메가 슬롯작업공간(systemDirectory: Environment.GetCommandLineArgs()[1]);
38목록<string> 식물 =
신규목록<문자열>()
"시애틀",
"샌디에고"};
39목록<string> 시장 =
신규목록<문자열>()
"뉴욕",
"시카고",
"토피카"};
40사전<문자열, 더블> 용량 =
신규사전<string, double>()
"시애틀", 350.0 }, {
"샌디에고", 600.0 } };
41사전<문자열, 더블> 수요 =
신규사전<string, double>()
"뉴욕", 325.0 }, {
"시카고", 300.0 }, {
"토피카", 275.0 } };
42사전<튜플<문자열, 문자열>,
더블> 거리 =
신규사전<튜플<문자열, 문자열>,
더블>()
44{
신규튜플<문자열,문자열> (
"시애틀",
"뉴욕"), 2.5 },
45{
신규튜플<문자열,문자열> (
"시애틀",
"시카고"), 1.7 },
46{
신규튜플<문자열,문자열> (
"시애틀",
"토피카"), 1.8 },
47{
신규튜플<문자열,문자열> (
"샌디에고",
"뉴욕"), 2.5 },
48{
신규튜플<문자열,문자열> (
"샌디에고",
"시카고"), 1.8 },
49{
신규튜플<문자열,문자열> (
"샌디에고",
"토피카"), 1.4 }
64 메가 슬롯매개변수a = db.AddParameter(
"a",
"공장의 생산 능력", i);
71Console.WriteLine(
"*** 예상치 못한 도메인 위반");
76 메가 슬롯매개변수b = db.AddParameter(
"b",
"경우에 따라 시장 j의 수요",
"j");
83Console.WriteLine(
"*** b에서 예기치 않은 도메인 위반");
88 메가 슬롯매개변수d = db.AddParameter(
"d",
"수천 마일 단위의 거리", i, j);
89 foreach(튜플<문자열, 문자열> t
에거리.키)
95Console.WriteLine(
"*** d에서 예기치 않은 도메인 위반");
100 if(!db.CheckDomains())
102Console.WriteLine(
"*** DB에서 예기치 않은 도메인 위반");
107d.AddRecord(
"시애틀",
"아아").값 = 1;
108d.AddRecord(
"bb",
"시애틀").값 = 1;
109a.AddRecord(
"아아").값 = 1;
110a.AddRecord(
"bb").값 = 1;
111b.AddRecord(
"아아").값 = 1;
112b.AddRecord(
"bb").값 = 1;
115 if(db.CheckDomains())
117Console.WriteLine(
"*** DB에 대한 도메인 위반이 인식되지 않음");
122Console.WriteLine(
"*** 인식되지 않는 도메인 위반");
127Console.WriteLine(
"*** d에 대한 도메인 위반이 인식되지 않음");
132 if(!b.CheckDomains())
134Console.WriteLine(
"*** b에서 예기치 않은 도메인 위반");
140Console.WriteLine(
"다음 도메인 위반:");
144 foreach (
부울vi
inSDV.
비올인드)
147 foreach (
문자열k
inSDV.
비올렉.
키)
149Console.WriteLine(
"<<");
154Console.WriteLine(
"*** a에 대한 도메인 위반 횟수는 2여야 하지만 "+ dvCnt);
160Console.WriteLine(
"d의 도메인 위반:");
164 foreach (
부울vi
inSDV.
바이올인드)
171 foreach (
문자열k
inSDV.
비올렉.
열쇠)
173Console.WriteLine(
"<<");
177Console.WriteLine(
"*** a에 대한 도메인 위반 횟수는 3이어야 하지만 확인했습니다. "+ dvCnt);
183Console.WriteLine(
"DB의 도메인 위반:");
186Console.WriteLine(
" > "+ DDV.
비올심.
이름 +
": ");
190 foreach (
부울vi
inSDV.
비올인드)
197 foreach (
문자열k
inSDV.
비올렉.
열쇠)
199Console.WriteLine(
"<<");
204Console.WriteLine(
"*** db에 대한 도메인 위반 횟수는 5여야 하는데 "+ dvCnt);
210Console.WriteLine(
"DB의 도메인 위반:");
213Console.WriteLine(
" > "+ DDV.
비올심.
이름 +
": ");
217 foreach (
부울vi
inSDV.
비올인드)
220 foreach (
문자열k
에SDV.
비올렉.
키)
222Console.WriteLine(
"<<");
228Console.WriteLine(
"*** db에 대한 도메인 위반 횟수는 3이어야 하는데 "+ dvCnt);
233Console.WriteLine(
"DB의 도메인 위반:");
236Console.WriteLine(
" > "+ DDV.
비올심.
이름 +
": ");
240 foreach (
부울vi
inSDV.
바이올인드)
243 foreach (
문자열k
inSDV.
비올렉.
키)
245Console.WriteLine(
"<<");
251Console.WriteLine(
"*** db에 대한 도메인 위반 횟수는 2여야 하는데 "+ dvCnt);
264db.SuppressAutoDomainChecking =
참;
269Console.WriteLine(
"*** 기본적으로 도메인 위반이 포함된 메가 슬롯데이터베이스를 내보낼 수 없어야 합니다.");
274 메가 슬롯데이터베이스db2 = ws.AddDatabaseFromGDX(
"test.gdx");
278 foreach (
객체항목
에d2.도메인)
285 if(!plants.Contains(uel.Key(0)))
287Console.WriteLine(
"*** 예상치 못한 uel "+ uel.Key(0) +
" 도메인 i에서 발견됨");
291 그밖에 if (((
GAMSSet)항목).이름 ==
"j")
294 if(!markets.Contains(uel.Key(0)))
296Console.WriteLine(
"*** 예상치 못한 uel "+ uel.Key(0) +
" 도메인 j에서 발견됨");
302Console.WriteLine(
"*** GAMSSet i 및 j가 필요했지만 발견됨 "+ ((
GAMSSet)항목).이름);
308Console.WriteLine(
"*** GAMSSet을 도메인으로 예상했지만 완화된 도메인을 찾았습니다. "+ (
문자열)항목);
319 GAMSJobjAlias = ws.AddJobFromString(GetDataText());
322Console.WriteLine(
"별칭 집합의 요소:");
324Console.WriteLine(
" > "+ item.Key(0));
331Console.WriteLine(
"빈 UEL을 추가한 후 테스트 세트의 요소:");
332Console.WriteLine(
" > "+ testSet.NumberRecords);
336Console.WriteLine(
"기록 'a'는 'a'와 동일해야 합니다:");
337Console.WriteLine(
" > "+ 테스트세트.
기록 찾기(
"a").
텍스트);
341테스트세트.
AddRecord(
"123456789012345678901234567890123456789012345678901234567890123").
텍스트=
"알았어";
346테스트세트.
AddRecord(
"1234567890123456789012345678901234567890123456789012345678901234").
텍스트=
"괜찮지 않음";
354Console.WriteLine(
"*** 63자를 초과하는 레코드를 추가하는 것은 불가능해야 합니다.");
359테스트DB.
추가세트(
"텍스트 확인",
"12345678901234567890123456789012345678901234567890123 45678901234567890123456789012345678901234567890123456789012345678901 23456789012345678901234567890123456789012345678901234567890123456789 012345678901234567890123456789012345678901234567890123456789012345");
363테스트DB.
AddSet(
"textNotOK",
"123456789012345678901234567890123456789012345678901234 56789012345678901234567890123456789012345678901234567890123456789012 34567890123456789012345678901234567890123456789012345678901234567890 123456789012345678901234567890123456789012345678901234567890123456");
371Console.WriteLine(
"*** 255자를 초과하는 설명 텍스트를 추가하는 것은 불가능해야 합니다.");
375testSet.
AddRecord(
"알았어").
텍스트=
"12345678901234567890123456789012345678901234567890123 45678901234567890123456789012345678901234567890123456789012345678901 23456789012345678901234567890123456789012345678901234567890123456789 012345678901234567890123456789012345678901234567890123456789012345";
379testSet.
AddRecord(
"안돼").
텍스트=
"123456789012345678901234567890123456789012345678901234 56789012345678901234567890123456789012345678901234567890123456789012 34567890123456789012345678901234567890123456789012345678901234567890 123456789012345678901234567890123456789012345678901234567890123456";
387Console.WriteLine(
"*** 255자를 초과하는 설명 텍스트를 추가하는 것은 불가능해야 합니다.");
405Console.WriteLine(
"*** 레코드에 작은따옴표와 큰따옴표를 추가하는 것은 불가능해야 합니다.");
409테스트DB.
내보내기(
"test.gdx");
418i 통조림 공장 / 시애틀, 샌디에고 /;
목록< GAMSSymbolDomainViolation > ViolRecs
GAMSSet AddSet(문자열 식별자, 정수 차원, 문자열 설명텍스트="", SetType setType=SetType.multi)
GAMSParameter GetParameter(문자열 매개변수 식별자)
GAMSSet GetSet(string setIdentifier)
내보내기 무효(문자열 filePath=null)
void Run(GAMSOptions gamsOptions=null, GAMSCheckpoint 체크포인트=null, TextWriter 출력=null, Boolean createOutDB=true)
새 GAMSParameterRecord AddRecord(params 문자열[] 키)
새 GAMSSetRecord AddRecord(params 문자열[] 키)
새 GAMSSetRecord FindRecord(params 문자열[] 키)
GAMSDatabase AddDatabase(문자열 데이터베이스 이름=null, 문자열 inModelName=null)