Skip to content

Commit

Permalink
[NF] Add more class modifier tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
perost authored and OpenModelica-Hudson committed May 22, 2018
1 parent 0559144 commit affad0b
Show file tree
Hide file tree
Showing 9 changed files with 185 additions and 11 deletions.
2 changes: 1 addition & 1 deletion flattening/modelica/scodeinst/ClassMod1.mo
@@ -1,4 +1,4 @@
// name: ClassMod1.mo
// name: ClassMod1
// status: correct
// cflags: -d=newInst

Expand Down
2 changes: 1 addition & 1 deletion flattening/modelica/scodeinst/ClassMod2.mo
@@ -1,4 +1,4 @@
// name: ClassMod2.mo
// name: ClassMod2
// status: correct
// cflags: -d=newInst

Expand Down
20 changes: 20 additions & 0 deletions flattening/modelica/scodeinst/ClassMod3.mo
@@ -0,0 +1,20 @@
// name: ClassMod3
// status: correct
// cflags: -d=newInst

package P
type T = Real;
end P;

model ClassMod3
package MyP = P(T(start = 1.0));
MyP.T t[3];
end ClassMod3;

// Result:
// class ClassMod3
// Real t[1](start = 1.0);
// Real t[2](start = 1.0);
// Real t[3](start = 1.0);
// end ClassMod3;
// endResult
20 changes: 20 additions & 0 deletions flattening/modelica/scodeinst/ClassMod4.mo
@@ -0,0 +1,20 @@
// name: ClassMod4
// status: correct
// cflags: -d=newInst

model A
type T = Real;
T t[3];
end A;

model ClassMod4
A a(T(start = 1.0));
end ClassMod4;

// Result:
// class ClassMod4
// Real a.t[1](start = 1.0);
// Real a.t[2](start = 1.0);
// Real a.t[3](start = 1.0);
// end ClassMod4;
// endResult
64 changes: 64 additions & 0 deletions flattening/modelica/scodeinst/ClassMod5.mo
@@ -0,0 +1,64 @@
// name: ClassMod5
// status: correct
// cflags: -d=newInst

model A
type T = Real[3];
T t;
end A;

model A2
type T = Real[3];
T t[2];
end A2;

model B
A a;
A2 a2;
end B;

model ClassMod5
B b[3](a(T(start = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}})));
B b2(a2(each T(start = {1, 2, 3})));
end ClassMod5;

// Result:
// class ClassMod5
// Real b[1].a.t[1](start = 1.0);
// Real b[1].a.t[2](start = 2.0);
// Real b[1].a.t[3](start = 3.0);
// Real b[1].a2.t[1,1];
// Real b[1].a2.t[1,2];
// Real b[1].a2.t[1,3];
// Real b[1].a2.t[2,1];
// Real b[1].a2.t[2,2];
// Real b[1].a2.t[2,3];
// Real b[2].a.t[1](start = 4.0);
// Real b[2].a.t[2](start = 5.0);
// Real b[2].a.t[3](start = 6.0);
// Real b[2].a2.t[1,1];
// Real b[2].a2.t[1,2];
// Real b[2].a2.t[1,3];
// Real b[2].a2.t[2,1];
// Real b[2].a2.t[2,2];
// Real b[2].a2.t[2,3];
// Real b[3].a.t[1](start = 7.0);
// Real b[3].a.t[2](start = 8.0);
// Real b[3].a.t[3](start = 9.0);
// Real b[3].a2.t[1,1];
// Real b[3].a2.t[1,2];
// Real b[3].a2.t[1,3];
// Real b[3].a2.t[2,1];
// Real b[3].a2.t[2,2];
// Real b[3].a2.t[2,3];
// Real b2.a.t[1];
// Real b2.a.t[2];
// Real b2.a.t[3];
// Real b2.a2.t[1,1](start = 1.0);
// Real b2.a2.t[1,2](start = 2.0);
// Real b2.a2.t[1,3](start = 3.0);
// Real b2.a2.t[2,1](start = 1.0);
// Real b2.a2.t[2,2](start = 2.0);
// Real b2.a2.t[2,3](start = 3.0);
// end ClassMod5;
// endResult
68 changes: 68 additions & 0 deletions flattening/modelica/scodeinst/ClassMod6.mo
@@ -0,0 +1,68 @@
// name: ClassMod6
// status: correct
// cflags: -d=newInst

model X
Real x;
end X;

model A
model T = X[3];
T t;
end A;

model A2
model T = X[3];
T t[2];
end A2;

model B
A a;
A2 a2;
end B;

model ClassMod6
B b[3](a(T(x = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}})));
B b2(a2(each T(x = {1, 2, 3})));
end ClassMod6;

// Result:
// class ClassMod6
// Real b[1].a.t[1].x = 1.0;
// Real b[1].a.t[2].x = 2.0;
// Real b[1].a.t[3].x = 3.0;
// Real b[1].a2.t[1,1].x;
// Real b[1].a2.t[1,2].x;
// Real b[1].a2.t[1,3].x;
// Real b[1].a2.t[2,1].x;
// Real b[1].a2.t[2,2].x;
// Real b[1].a2.t[2,3].x;
// Real b[2].a.t[1].x = 4.0;
// Real b[2].a.t[2].x = 5.0;
// Real b[2].a.t[3].x = 6.0;
// Real b[2].a2.t[1,1].x;
// Real b[2].a2.t[1,2].x;
// Real b[2].a2.t[1,3].x;
// Real b[2].a2.t[2,1].x;
// Real b[2].a2.t[2,2].x;
// Real b[2].a2.t[2,3].x;
// Real b[3].a.t[1].x = 7.0;
// Real b[3].a.t[2].x = 8.0;
// Real b[3].a.t[3].x = 9.0;
// Real b[3].a2.t[1,1].x;
// Real b[3].a2.t[1,2].x;
// Real b[3].a2.t[1,3].x;
// Real b[3].a2.t[2,1].x;
// Real b[3].a2.t[2,2].x;
// Real b[3].a2.t[2,3].x;
// Real b2.a.t[1].x;
// Real b2.a.t[2].x;
// Real b2.a.t[3].x;
// Real b2.a2.t[1,1].x = 1.0;
// Real b2.a2.t[1,2].x = 2.0;
// Real b2.a2.t[1,3].x = 3.0;
// Real b2.a2.t[2,1].x = 1.0;
// Real b2.a2.t[2,2].x = 2.0;
// Real b2.a2.t[2,3].x = 3.0;
// end ClassMod6;
// endResult
2 changes: 1 addition & 1 deletion flattening/modelica/scodeinst/DimUnknown4.mo
Expand Up @@ -20,7 +20,7 @@ end DimUnknown4;
// Result:
// Error processing file: DimUnknown4.mo
// [flattening/modelica/scodeinst/DimUnknown4.mo:17:22-17:29:writable] Notification: From here:
// [flattening/modelica/scodeinst/DimUnknown4.mo:9:3-9:15:writable] Error: Type mismatch in binding x = 3.0, expected subtype of Real[:, :], got type Real.
// [flattening/modelica/scodeinst/DimUnknown4.mo:9:3-9:15:writable] Error: Failed to deduce dimension 1 of ‘x‘ due to ‘each‘ prefix on binding equation.
//
// # Error encountered! Exiting...
// # Please check the error message and the flags.
Expand Down
4 changes: 4 additions & 0 deletions flattening/modelica/scodeinst/Makefile
Expand Up @@ -150,6 +150,10 @@ ClassExtendsMod1.mo \
ClassExtendsMissing1.mo \
ClassMod1.mo \
ClassMod2.mo \
ClassMod3.mo \
ClassMod4.mo \
ClassMod5.mo \
ClassMod6.mo \
Comment1.mo \
CompAsFunc.mo \
ComponentAsTypeError.mo \
Expand Down
14 changes: 6 additions & 8 deletions flattening/modelica/scodeinst/TypeDimNonType1.mo
@@ -1,6 +1,6 @@
// name: TypeDimNonType1
// keywords:
// status: incorrect
// status: correct
// cflags: -d=newInst
//

Expand All @@ -14,11 +14,9 @@ model TypeDimNonType1
end TypeDimNonType1;

// Result:
// Error processing file: TypeDimNonType1.mo
// [flattening/modelica/scodeinst/TypeDimNonType1.mo:12:3-12:17:writable] Error: Invalid dimensions on ‘model B‘, only types may have dimensions.
//
// # Error encountered! Exiting...
// # Please check the error message and the flags.
//
// Execution failed!
// class TypeDimNonType1
// Real b[1].a;
// Real b[2].a;
// Real b[3].a;
// end TypeDimNonType1;
// endResult

0 comments on commit affad0b

Please sign in to comment.