11/*******************************************************************************
22 * SysML 2 Pilot Implementation
3- * Copyright (c) 2021-2022, 2025 Model Driven Solutions, Inc.
3+ * Copyright (c) 2021-2022, 2025-2026 Model Driven Solutions, Inc.
44 *
55 * This program is free software: you can redistribute it and/or modify
66 * it under the terms of the GNU Lesser General Public License as published by
@@ -302,6 +302,10 @@ public void testListEvaluation() throws Exception {
302302 assertArrayEquals (new Object [] {1 , 2 , 3 }, evaluateListValue (null , null , "1..3" ));
303303 assertArrayEquals (new Object [] {-1 , 0 , 1 , 2 }, evaluateListValue (null , null , "-1..2" ));
304304 assertArrayEquals (new Object [] {}, evaluateListValue (null , null , "5..3" ));
305+
306+ assertEquals (2 , evaluateIntegerValue (null , null , "(1, 2, 3)#(2)" ));
307+ assertArrayEquals (new Object [] {}, evaluateListValue (null , null , "(1, 2, 3)#(4)" ));
308+
305309// assertEquals(3, evaluateIntegerValue(null, null, "SequenceFunctions::size((1, 2, 3))"));
306310// assertEquals(true, evaluateBooleanValue(null, null, "SequenceFunctions::includes((1, 2, 3), 1)"));
307311// assertEquals(false, evaluateBooleanValue(null, null, "SequenceFunctions::includes((1, 2, 3), 5)"));
@@ -315,6 +319,24 @@ public void testListEvaluation() throws Exception {
315319// assertEquals(true, evaluateBooleanValue(null, null, "SequenceFunctions::notEmpty((1,2,3))"));
316320 }
317321
322+ @ Test
323+ public void testCollectionEvaluation () throws Exception {
324+ SysMLInteractive instance = getSysMLInteractiveInstance ();
325+ process (instance ,
326+ "attribute collection15 = new Collections::OrderedCollection(elements = (1, 5));\n "
327+ + "attribute collection123 = new Collections::OrderedCollection(elements = (1, 2, 3));\n "
328+ + "attribute collection123a = new Collections::OrderedCollection(elements = (1, 2, 3));\n "
329+ + "attribute collection321 = new Collections::OrderedCollection(elements = (3, 2, 1));" );
330+ assertEquals (true , evaluateBooleanValue (instance , null , "collection123 == collection123a" ));
331+ assertEquals (false , evaluateBooleanValue (instance , null , "collection123 == collection321" ));
332+ assertEquals (false , evaluateBooleanValue (instance , null , "collection123 == collection15" ));
333+ assertEquals (false , evaluateBooleanValue (instance , null , "collection123 != collection123a" ));
334+ assertEquals (true , evaluateBooleanValue (instance , null , "collection123 != collection321" ));
335+ assertEquals (true , evaluateBooleanValue (instance , null , "collection123 != collection15" ));
336+ assertEquals (2 , evaluateIntegerValue (instance , null , "collection123#(2)" ));
337+ assertArrayEquals (new Object [] {}, evaluateListValue (instance , null , "collection123#(4)" ));
338+ }
339+
318340// Note: These collect and select expressions are currently not model-level evaluable, because the feature references
319341// to parameters of the body expressions are considered non-model-level evaluable (currently per the specification).
320342// @Test
0 commit comments