ldidx01.gms : $loadIdx - checking basic operation

Description

Check basic operation of $loadIdx:
  - A: load the data and each index set all via $loadIdx
  - B: load the data and index sets, assuming common index sets
  - C: load the data and index sets, using aliases for common sets
  - D: load just the data, index sets pre-loaded
  - E: load just the data, index sets pre-loaded, use some aliases

Contributor: Steve Dirkse, Oct 2013

  -----  - A: load the data and each index set all via $loadIdx ----------


Small Model of Type : GAMS


Category : GAMS Test library


Main file : ldidx01.gms

$TITLE $loadIdx - checking basic operation (ldidx01,SEQ=625)

$ontext
Check basic operation of $loadIdx:
  - A: load the data and each index set all via $loadIdx
  - B: load the data and index sets, assuming common index sets
  - C: load the data and index sets, using aliases for common sets
  - D: load just the data, index sets pre-loaded
  - E: load just the data, index sets pre-loaded, use some aliases

Contributor: Steve Dirkse, Oct 2013
$offtext

* -----  - A: load the data and each index set all via $loadIdx ----------
sets
  i
  j1, j2, j3
  k1, k2, k3, k4, k5, k6, k7, k8, k9, k10
  ;
parameters
  a0
  a1(i)
  a3 (j1, j2, j3)
  a10(k1, k2, k3, k4, k5, k6, k7, k8, k9, k10)
  ;
$gdxin idx1_
$loadIdx a0 a1 a3 a10
$gdxin
abort$[a0 <> 525] 'a0 not as expected', a0;
abort$[card(i) <> 5] 'i not as expected';
abort$[card(a1) <> 3] 'a1 not as expected';
abort$[card(j1) <> 3] 'j1 not as expected';
abort$[card(j2) <> 5] 'j2 not as expected';
abort$[card(j3) <> 2] 'j3 not as expected';
abort$[card(a3) <> 6] 'a3 not as expected';
abort$[card(k1) <> 3] 'k1 not as expected';
abort$[card(k2) <> 5] 'k2 not as expected';
abort$[card(k3) <> 2] 'k3 not as expected';
abort$[card(k4) <> 2] 'k4 not as expected';
abort$[card(k5) <> 2] 'k5 not as expected';
abort$[card(k6) <> 2] 'k6 not as expected';
abort$[card(k7) <> 2] 'k7 not as expected';
abort$[card(k8) <> 2] 'k8 not as expected';
abort$[card(k9) <> 2] 'k9 not as expected';
abort$[card(k10)<> 2] 'k10 not as expected';
abort$[card(a10) <> 256] 'a10 not as expected';


* -----  - B: load the data and index sets, assuming common index sets ---
sets s1, s2, s3;
parameter b(s1, s2, s3, s3, s3, s3, s3, s3, s3, s3);
$gdxin idx1_
$loadIdx b=a10
$gdxin
abort$[card(s1) <> 3] 's1 not as expected';
abort$[card(s2) <> 5] 's2 not as expected';
abort$[card(s3) <> 2] 's3 not as expected';
abort$[card(b) <> 256] 'b not as expected';


* -----  - C: load the data and index sets, using aliases for common sets-
sets ss1, ss2, ss3;
alias(ss3,ss4,ss5,ss6,ss7,ss8,ss9,ss10);
parameter v(ss1,ss2,ss3,ss4,ss5,ss6,ss7,ss8,ss9,ss10);
$gdxin idx1_
$loadIdx v=a10
$gdxin
abort$[card(ss1) <> 3] 'ss1 not as expected';
abort$[card(ss2) <> 5] 'ss2 not as expected';
abort$[card(ss3) <> 2] 'ss3 not as expected';
abort$[card(ss4) <> 2] 'ss4 not as expected';
abort$[card(ss5) <> 2] 'ss5 not as expected';
abort$[card(ss6) <> 2] 'ss6 not as expected';
abort$[card(ss7) <> 2] 'ss7 not as expected';
abort$[card(ss8) <> 2] 'ss8 not as expected';
abort$[card(ss9) <> 2] 'ss9 not as expected';
abort$[card(ss10)<> 2] 'ss10 not as expected';
abort$[card(v) <> 256] 'v not as expected';


* -----  - D: load just the data, index sets pre-loaded: -----------------
sets
  ii  / 1 * 5 /
  jj1 / 1 * 3 /
  jj2 / 1 * 5 /
  jj3 / 1 * 2 /
  p1  / 1 * 3 /
  p2  / 1 * 5 /
  p3  / 1 * 2 /
  px  / 1 * 2 /
  ;
scalar ddd;
parameters
  aa0
  aa1(ii)
  aa3(jj1,jj2,jj3)
  aa10(p1,p2,p3,px,px,px,px,px,px,px)
  ;
$gdxin idx1_
$loadIdx ddd=a0 aa0=a0 aa1=a1 aa3=a3 aa10=a10
$gdxin
abort$[ddd <> 525] 'ddd not as expected', ddd;
abort$[aa0 <> 525] 'aa0 not as expected', aa0;
abort$[card(aa1) <> 3] 'aa1 not as expected', aa1;
abort$[card(aa3) <> 6] 'aa3 not as expected';
abort$[card(aa10) <> 256] 'aa10 not as expected';


* -----  - E: load just the data, index sets pre-loaded, use some aliases-
alias(p3,pa);
parameters
  bb10(p1,p2,pa,pa,pa,pa,pa,pa,pa,pa)
  ;
$gdxin idx1_
$loadIdx bb10=a10
$gdxin
abort$[card(bb10) <> 256] 'bb10 not as expected';