Skip to content

Commit

Permalink
Added testcase for min/max of enumerations.
Browse files Browse the repository at this point in the history
  • Loading branch information
perost authored and OpenModelica-Hudson committed Oct 9, 2017
1 parent eda7008 commit 4d3b502
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
1 change: 1 addition & 0 deletions flattening/modelica/built-in-functions/Makefile
Expand Up @@ -48,6 +48,7 @@ Log10.mo \
MathematicalFunctions.mo \
MaxArray.mo \
MinMax.mo \
MinMaxEnum.mo \
Mod.mo \
MultiFunctionReturnValueUseOnlyFirst.mo \
NumericFunctions.mo \
Expand Down
37 changes: 37 additions & 0 deletions flattening/modelica/built-in-functions/MinMaxEnum.mo
@@ -0,0 +1,37 @@
// name: MinMaxEnum
// keywords: builtin functions min max
// status: correct
//
// Usage of the min and max functions with enumerations.
//

model MinMaxEnum
type E = enumeration(a, b, c, d);
constant E earr[E] = E.a:E.d;

constant E e1 = min(E.a, E.d);
constant E e2 = max(E.a, E.d);
constant E e3 = min(earr);
constant E e4 = max(earr);
constant E e5 = min(e for e in earr);
constant E e6 = max(e for e in earr);
constant E e7 = min(e for e in {E.c, E.b, E.d});
constant E e8 = max(e for e in {E.a, E.c, E.b});
end MinMaxEnum;

// Result:
// class MinMaxEnum
// constant enumeration(a, b, c, d) earr[MinMaxEnum.E.a] = MinMaxEnum.E.a;
// constant enumeration(a, b, c, d) earr[MinMaxEnum.E.b] = MinMaxEnum.E.b;
// constant enumeration(a, b, c, d) earr[MinMaxEnum.E.c] = MinMaxEnum.E.c;
// constant enumeration(a, b, c, d) earr[MinMaxEnum.E.d] = MinMaxEnum.E.d;
// constant enumeration(a, b, c, d) e1 = MinMaxEnum.E.a;
// constant enumeration(a, b, c, d) e2 = MinMaxEnum.E.d;
// constant enumeration(a, b, c, d) e3 = MinMaxEnum.E.a;
// constant enumeration(a, b, c, d) e4 = MinMaxEnum.E.d;
// constant enumeration(a, b, c, d) e5 = MinMaxEnum.E.a;
// constant enumeration(a, b, c, d) e6 = MinMaxEnum.E.d;
// constant enumeration(a, b, c, d) e7 = MinMaxEnum.E.b;
// constant enumeration(a, b, c, d) e8 = MinMaxEnum.E.c;
// end MinMaxEnum;
// endResult

0 comments on commit 4d3b502

Please sign in to comment.