@@ -28,13 +28,12 @@ function testBasicMatch(testCase)
2828 reg .register(' flow' , Sensor(' flow' ));
2929
3030 ms = TestLoadModuleData .makeModuleStruct({' temp' , ' press' , ' flow' }, 100 );
31- sensors = loadModuleData(reg , ms );
31+ out = loadModuleData(reg , ms );
3232
33- testCase .verifyEqual(numel(sensors ), 3 , ' all_matched' );
34- for i = 1 : numel(sensors )
35- testCase .verifyEqual(numel(sensors{i }.X), 100 , ' X_length' );
36- testCase .verifyEqual(numel(sensors{i }.Y), 100 , ' Y_length' );
37- end
33+ testCase .verifyTrue(isa(out , ' ExternalSensorRegistry' ), ' returns_registry' );
34+ testCase .verifyEqual(numel(reg .get(' temp' ).X), 100 , ' temp_X' );
35+ testCase .verifyEqual(numel(reg .get(' press' ).Y), 100 , ' press_Y' );
36+ testCase .verifyEqual(numel(reg .get(' flow' ).Y), 100 , ' flow_Y' );
3837 end
3938
4039 function testPartialMatch(testCase )
@@ -44,30 +43,30 @@ function testPartialMatch(testCase)
4443 reg .register(' press' , Sensor(' press' ));
4544
4645 ms = TestLoadModuleData .makeModuleStruct({' temp' , ' press' , ' flow' }, 50 );
47- sensors = loadModuleData(reg , ms );
46+ loadModuleData(reg , ms );
4847
49- testCase .verifyEqual(numel(sensors ), 2 , ' partial_match' );
48+ testCase .verifyEqual(numel(reg .get(' temp' ).X), 50 , ' temp_filled' );
49+ testCase .verifyEqual(numel(reg .get(' press' ).X), 50 , ' press_filled' );
5050 end
5151
5252 function testNoMatch(testCase )
53- % Registry has sensors not in struct
53+ % Registry has sensors not in struct — sensor stays empty
5454 reg = ExternalSensorRegistry(' Test' );
5555 reg .register(' voltage' , Sensor(' voltage' ));
5656
5757 ms = TestLoadModuleData .makeModuleStruct({' temp' , ' press' }, 50 );
58- sensors = loadModuleData(reg , ms );
58+ loadModuleData(reg , ms );
5959
60- testCase .verifyTrue(isempty(sensors ), ' no_match_empty' );
61- testCase .verifyEqual(size(sensors ), [1 0 ], ' empty_1x0' );
60+ testCase .verifyTrue(isempty(reg .get(' voltage' ).X), ' voltage_empty' );
6261 end
6362
6463 function testEmptyRegistry(testCase )
6564 reg = ExternalSensorRegistry(' Test' );
6665 ms = TestLoadModuleData .makeModuleStruct({' temp' }, 50 );
67- sensors = loadModuleData(reg , ms );
66+ out = loadModuleData(reg , ms );
6867
69- testCase .verifyTrue(isempty( sensors ), ' empty_registry ' );
70- testCase .verifyEqual(size( sensors ), [ 1 0 ] , ' empty_registry_1x0 ' );
68+ testCase .verifyTrue(isa( out , ' ExternalSensorRegistry ' ), ' returns_registry ' );
69+ testCase .verifyEqual(reg .count( ), 0 , ' still_empty ' );
7170 end
7271
7372 function testSharedXValues(testCase )
@@ -77,24 +76,10 @@ function testSharedXValues(testCase)
7776 reg .register(' b' , Sensor(' b' ));
7877
7978 ms = TestLoadModuleData .makeModuleStruct({' a' , ' b' }, 100 );
80- sensors = loadModuleData(reg , ms );
79+ loadModuleData(reg , ms );
8180
82- testCase .verifyEqual(sensors{1 }.X, sensors{2 }.X, ' shared_X' );
83- testCase .verifyEqual(sensors{1 }.X, ms .time_utc , ' X_matches_datenum' );
84- end
85-
86- function testOutputOrderFollowsFieldnames(testCase )
87- % Output order matches fieldnames(moduleStruct), not registry order
88- reg = ExternalSensorRegistry(' Test' );
89- reg .register(' beta' , Sensor(' beta' ));
90- reg .register(' alpha' , Sensor(' alpha' ));
91-
92- % Struct fields: doc, time_utc, alpha, beta
93- ms = TestLoadModuleData .makeModuleStruct({' alpha' , ' beta' }, 10 );
94- sensors = loadModuleData(reg , ms );
95-
96- testCase .verifyEqual(sensors{1 }.Key, ' alpha' , ' first_is_alpha' );
97- testCase .verifyEqual(sensors{2 }.Key, ' beta' , ' second_is_beta' );
81+ testCase .verifyEqual(reg .get(' a' ).X, reg .get(' b' ).X, ' shared_X' );
82+ testCase .verifyEqual(reg .get(' a' ).X, ms .time_utc , ' X_matches_datenum' );
9883 end
9984
10085 function testDocFieldExcluded(testCase )
@@ -107,10 +92,10 @@ function testDocFieldExcluded(testCase)
10792 ms.doc.temp.datum = ' time_utc' ;
10893 ms.time_utc = linspace(datenum(2024 ,1 ,1 ), datenum(2024 ,1 ,2 ), 50 );
10994 ms.temp = randn(1 , 50 );
110- sensors = loadModuleData(reg , ms );
95+ loadModuleData(reg , ms );
11196
112- testCase .verifyEqual(numel(sensors ), 1 , ' doc_excluded ' );
113- testCase .verifyEqual(sensors{ 1 }.Key, ' temp ' , ' only_temp ' );
97+ testCase .verifyEqual(numel(reg .get( ' temp ' ).X), 50 , ' temp_filled ' );
98+ testCase .verifyTrue(isempty( reg .get( ' doc ' ).X) , ' doc_excluded ' );
11499 end
115100
116101 function testDatenumFieldExcluded(testCase )
@@ -120,10 +105,10 @@ function testDatenumFieldExcluded(testCase)
120105 reg .register(' temp' , Sensor(' temp' ));
121106
122107 ms = TestLoadModuleData .makeModuleStruct({' temp' }, 50 );
123- sensors = loadModuleData(reg , ms );
108+ loadModuleData(reg , ms );
124109
125- testCase .verifyEqual(numel(sensors ), 1 , ' datenum_excluded ' );
126- testCase .verifyEqual(sensors{ 1 }.Key, ' temp ' , ' only_temp ' );
110+ testCase .verifyEqual(numel(reg .get( ' temp ' ).X), 50 , ' temp_filled ' );
111+ testCase .verifyTrue(isempty( reg .get( ' time_utc ' ).X) , ' datenum_excluded ' );
127112 end
128113
129114 function testMissingDocFieldErrors(testCase )
@@ -181,31 +166,18 @@ function testDatumNotCharErrors(testCase)
181166 testCase .verifyTrue(threw , ' non_char_datum_throws' );
182167 end
183168
184- function testOutputIsRowCell(testCase )
185- reg = ExternalSensorRegistry(' Test' );
186- reg .register(' temp' , Sensor(' temp' ));
187-
188- ms = TestLoadModuleData .makeModuleStruct({' temp' }, 10 );
189- sensors = loadModuleData(reg , ms );
190-
191- testCase .verifyEqual(size(sensors , 1 ), 1 , ' row_cell' );
192- end
193-
194169 function testOverwriteOnRepeatedCall(testCase )
195170 % Calling twice overwrites sensor data (handle semantics)
196171 reg = ExternalSensorRegistry(' Test' );
197172 reg .register(' temp' , Sensor(' temp' ));
198173
199174 ms1 = TestLoadModuleData .makeModuleStruct({' temp' }, 50 );
200- sensors1 = loadModuleData(reg , ms1 );
175+ loadModuleData(reg , ms1 );
176+ testCase .verifyEqual(numel(reg .get(' temp' ).Y), 50 , ' first_call' );
201177
202178 ms2 = TestLoadModuleData .makeModuleStruct({' temp' }, 100 );
203- sensors2 = loadModuleData(reg , ms2 );
204-
205- % Same handle, new data — verify via both references
206- testCase .verifyEqual(numel(sensors2{1 }.Y), 100 , ' overwritten_Y' );
207- testCase .verifyEqual(numel(sensors1{1 }.Y), 100 , ' sensors1_also_overwritten' );
208- testCase .verifyTrue(sensors1{1 } == sensors2{1 }, ' same_handle' );
179+ loadModuleData(reg , ms2 );
180+ testCase .verifyEqual(numel(reg .get(' temp' ).Y), 100 , ' overwritten' );
209181 end
210182 end
211183end
0 commit comments