5wsInfo = 크레이지 슬롯control.WorkspaceInfo();
6wsInfo.systemDirectory = varargin1;
7ws = 크레이지 슬롯control.Workspace(wsInfo);
9ws = 크레이지 슬롯control.Workspace();
16 '별칭 (i,ii), (j,jj), (ij,iijj);'
18 ' a(i) / #i 1 /, 크레이지 슬롯(ii) / #ii 2 /;'};
19데이터 = 스프린트f(
'%s\n', 데이터:);
57gdxdump1 = 스프린트f('%s\n
', gdxdump1:);
74gdxdump2 = 스프린트f('%s\n
', gdxdump2:);
77% OO API는 별칭에 대해 알지 못하며 이를 세트로 검색합니다.
78j1 = ws.addJobFromString(데이터);
81checkAliasLogic('j1.outDB
', j1.outDB);
83j1.outDB.export('outDB.gdx
');
84assert(SameGdxDump(ws, 'outDB.gdx
', gdxdump1), 'gdxdump outDB.gdx의 예상치 못한 결과
');
86% 복사 생성자는 별칭 및 기타를 보존해야 합니다.
87db = ws.addDatabase(j1.outDB);
88checkAliasLogic('db
', db);
90assert(SameGdxDump(ws, 'db.gdx
', gdxdump1), 'gdxdump db.gdx의 예상치 못한 결과
');
92db2 = ws.addDatabase();
93ii = db2.addSet(db.getSet('ii
').이름, db.getSet('ii
').text, '*
');
94db.getSet('ii
').copySymbol(ii);
96aaOriginal = db.getParameter('아아
');
97크레이지 슬롯 = db2.addParameter(db.getParameter('아아
').이름, db.getParameter('아아
').text, ii);
98aaOriginal.copySymbol(크레이지 슬롯);
101assert(SameGdxDump(ws, 'db2.gdx
', gdxdump2), 'gdxdump db2.gdx의 예상치 못한 결과
');
103% 도메인이 별칭인 경우 도메인은 별칭 세트를 반환해야 합니다.
104% 그러나 getDomainsAsStrings는 별칭 이름을 반환해야 합니다.
105assert(isa(aaOriginal.domains1, '설정
'), '도메인
설정세트여야 합니다
');
106assert(strcmp(aaOriginal.domains1.name, 'i
'), '도메인
설정원본이어야 합니다
설정');
107assert(strcmp(aaOriginal.domainsAsStrings1, 'ii
'), '도메인은
문자열별칭 이름이어야 합니다
');
110함수 checkAliasLogic(접두사, aliasDB)
112assert(aliasDB.numberOfSymbols == 5, '%s aliasDB에는 NrSymbols=5: i,j,ij,a,크레이지 슬롯가 있어야 합니다.
', 접두사);
113assert(numel(aliasDB.symbols) == 5, '%s aliasDB에는 5개의 기호가 있습니다: i,j,ij,a,크레이지 슬롯.
', 접두사);
115% 별칭 세트를 검색할 수 있는지 확인하세요
116assert(strcmp(aliasDB.getSet('ii
').이름, 'i
'), '%s 우리는 해야 합니다
얻기 세트물어볼 때
for별칭 ii.
', 접두사);
117assert(strcmp(aliasDB.getSet('jj
').이름, 'j
'), '%s 우리는 해야 합니다
얻기 세트j 물을 때
for별칭 jj.
', 접두사);
118assert(strcmp(aliasDB.getSet('iijj
').이름, 'ij
'), '%s 우리는 해야 합니다
얻기 설정ij 물을 때
for별명 iijj.
', 접두사);
121assert(aliasDB.checkDomains(), '%s 도메인 확인은 다음과 같아야 합니다.
참', 접두사);
122도메인 = aliasDB.getParameter('아아
').도메인;
123assert(isa(도메인1, '크레이지 슬롯control.Set
'), '크레이지 슬롯의 %s 도메인[0]은(는)
세트', 접두사);
124assert(strcmp(도메인1.이름, 'i
'), '크레이지 슬롯의 %s 도메인[0]은 i를 가리켜야 합니다.
', 접두사);
126aliasDB.getSet('ii
').deleteRecord('i1
');
127assert(~aliasDB.checkDomains(), '%s 도메인 확인은 다음과 같아야 합니다.
거짓i1 제거 후
', 접두사);
128aliasDB.getSet('ii
').addRecord('i1
');
129assert(aliasDB.checkDomains(), '%s 도메인 확인은 다음과 같아야 합니다.
참i1을 다시 추가한 후
', 접두사);
132함수 is_equal = SameGdxDump(ws, gdxfile, 예상 결과)
133cmd = 전체 파일(ws.systemDirectory(), 'gdxdump
');
134cmd_arg = fullfile(ws.workingDirectory(), gdxfile);
136[상태, cmdout] = 시스템([cmd, ' ', cmd_arg]);
137cmdout = strsplit(cmdout, char(10));
139for i = numel(cmdout):-1:1
143if strcmp(cmdouti, '$oneempty
')
147expectedResult = strsplit(expectedResult, char(10));
150if numel(expectedResult) ~= numel(cmdout)
154for i = 1:numel(cmdout)
155if ~strcmp(cmdouti, 예상결과i)