diff CellTest.m @ 484:da7df0c9af05 feature/sublassable_cellarray

Implement tests for subscript assignment
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 02 Aug 2017 15:23:57 +0200
parents 970f1df2bfcf
children 2ce903f28193
line wrap: on
line diff
--- a/CellTest.m	Wed Aug 02 14:49:56 2017 +0200
+++ b/CellTest.m	Wed Aug 02 15:23:57 2017 +0200
@@ -53,8 +53,90 @@
     testCase.verifyEqual(result, {3, 1});
 end
 
-function testSubAssignment(testCase)
-    testCase.verifyFail();
+function testSubAssignmentRound(testCase)
+    cases = {
+        % {
+        %     lArray,
+        %     index,
+        %     rhs,
+        %     expectedResult
+        % },
+        {
+            {},
+            1,
+            {'a'},
+            {'a'},
+        },
+        {
+            {1},
+            1,
+            {'a'},
+            {'a'},
+        },
+        {
+            {1,2,3},
+            2,
+            {'a'},
+            {1,'a',3},
+        },
+        {
+            {1,2,3},
+            2,
+            [],
+            {1,3},
+        },
+    };
+
+    for i = 1:length(cases)
+        lArray         = Cell(cases{i}{1});
+        index          = cases{i}{2};
+        rhs            = cases{i}{3};
+        expectedResult = cases{i}{4};
+
+        lArray(index) = rhs;
+
+        testCase.verifyEqual(lArray.data, expectedResult)
+    end
+end
+
+function testSubAssignmentCurly(testCase)
+    cases = {
+        % {
+        %     lArray,
+        %     index,
+        %     rhs,
+        %     expectedResult
+        % },
+        {
+            {},
+            1,
+            'a',
+            {'a'},
+        },
+        {
+            {1},
+            1,
+            'a',
+            {'a'},
+        },
+        {
+            {1,2,3},
+            2,
+            'a',
+            {1,'a',3},
+        },
+    };
+
+    for i = 1:length(cases)
+        lArray         = Cell(cases{i}{1});
+        index          = cases{i}{2};
+        rhs            = cases{i}{3};
+        expectedResult = cases{i}{4};
+
+        lArray{index} = rhs;
+
+        testCase.verifyEqual(lArray.data, expectedResult)
+    end
 end
 
 function testIndexreferenceRound(testCase)