System.Collections.Generic;
5usingSystem.Text.RegularExpressions;
6usingSystem.Diagnostics;
26 static intMain(
string[] args)
31 if(Environment.GetCommandLineArgs().Length > 1)
32ws =
new GAMSWorkspace(systemDirectory: Environment.GetCommandLineArgs()[1]);
40CheckAliasLogic(
"j1.OutDB ", j1.
OutDB);
42MyAssert(SameGdxDump(ws,
"outdb.gdx", gdxdump1()),
"Unexpected result of gdxdump outdb.gdx");
46CheckAliasLogic(
"db ", db);
48MyAssert(SameGdxDump(ws,
"db.gdx", gdxdump1()),
"Unexpected result of gdxdump db.gdx");
52db.
GetSet(
"ii").CopySymbol(ii);
56aaOrig.CopySymbol(aa);
58MyAssert(SameGdxDump(ws,
"db2.gdx", gdxdump2()),
"Unexpected result of gdxdump db2.gdx");
62MyAssert(((
GAMSSet)aaOrig.Domains[0]).Name ==
"i",
"The domain set should be the original set");
63MyAssert(aaOrig.DomainsAsStrings[0] ==
"ii",
"The domain as string should be the alias name");
67Console.WriteLine(
"###");
68Console.WriteLine(
"### Exception caught:"+ e.Message);
69Console.WriteLine(
"###");
75 static voidMyAssert(
booltest,
stringmsg)
78 throw newSystem.Exception(msg);
81 static voidCheckAliasLogic(
stringprefix,
GAMSDatabasealiasDB)
84MyAssert(aliasDB.
NrSymbols== 5, prefix +
"aliasDB should have NrSymbols=5: i,j,ij,a,aa.");
87 foreach(
GAMSSymbolsym
inaliasDB) cntSymbols++;
88MyAssert(cntSymbols == 5, prefix +
"foreach (GAMSSymbol sym in aliasDB) should result in 5 symbols: i,j,ij,a,aa.");
91MyAssert(aliasDB.GetSet(
"ii").Name ==
"i", prefix +
"We should get set i when asking for alias ii.");
92MyAssert(aliasDB.GetSet(
"jj").Name ==
"j", prefix +
"We should get set j when asking for alias jj.");
93MyAssert(aliasDB.GetSet(
"iijj").Name ==
"ij", prefix +
"We should get set ij when asking for alias iijj.");
96MyAssert(aliasDB.CheckDomains() ==
true, prefix +
"Check domains should be true");
97MyAssert(aliasDB.GetParameter(
"aa").Domains[0] is
GAMSSet, prefix +
"domain[0] of aa should be set");
98MyAssert(((
GAMSSet)aliasDB.GetParameter(
"aa").Domains[0]).Name ==
"i", prefix +
"domain[0] of aa should point to i");
100aliasDB.GetSet(
"ii").DeleteRecord(
"i1");
101MyAssert(aliasDB.CheckDomains() ==
false, prefix +
"Check domains should be false after removal of i1");
102aliasDB.GetSet(
"ii").AddRecord(
"i1");
103MyAssert(aliasDB.CheckDomains() ==
true, prefix +
"Check domains should be true after adding i1 again");
106 static boolSameGdxDump(
GAMSWorkspacews,
stringgdxfile,
stringexpectedResult)
108 stringresult =
string.Empty;
109ProcessStartInfo start =
newProcessStartInfo();
110#if __MonoCS__ || __APPLE__ 111start.FileName = ws.SystemDirectory + Path.DirectorySeparatorChar +
"gdxdump";
113start.FileName = ws.SystemDirectory + Path.DirectorySeparatorChar +
"gdxdump.exe";
115start.Arguments = ws.WorkingDirectory + Path.DirectorySeparatorChar + gdxfile;
116start.UseShellExecute =
false;
117start.RedirectStandardOutput =
true;
118 using(Process process = Process.Start(start))
123 using(StreamReader reader = process.StandardOutput)
125result = Regex.Replace(reader.ReadToEnd(),
@"\s",
"");
128 returnString.Equals(result,expectedResult,StringComparison.OrdinalIgnoreCase);
131 staticString GetDataText()
137alias (i,ii), (j,jj), (ij,iijj); 139 a(i) / #i 1 /, aa(ii) / #ii 2 /; 144 staticString gdxdump1()
182 returnRegex.Replace(data,
@"\s",
"");
185 staticString gdxdump2()
202 returnRegex.Replace(data,
@"\s",
"");
GAMSSet AddSet(string identifier, int dimension, string explanatoryText="", SetType setType=SetType.multi)
GAMSParameter GetParameter(string parameterIdentifier)
GAMSSet GetSet(string setIdentifier)
GAMSParameter AddParameter(string identifier, int dimension, string explanatoryText="")
void Export(string filePath=null)
void Run(GAMSOptions gamsOptions=null, GAMSCheckpoint checkpoint=null, TextWriter output=null, Boolean createOutDB=true)
GAMSJob AddJobFromString(string gamsSource, GAMSCheckpoint checkpoint=null, string jobName=null)
GAMSDatabase AddDatabase(string databaseName=null, string inModelName=null)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4