-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTestLabviewHeader.m
More file actions
71 lines (55 loc) · 2.94 KB
/
TestLabviewHeader.m
File metadata and controls
71 lines (55 loc) · 2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
classdef (SharedTestFixtures=SharedFixtures()) ...
TestLabviewHeader < matlab.unittest.TestCase
%TESTLABVIEWHEADER Tests of the LabviewHeader class.
properties
end
methods (Test)
function testLoadingSampleHeader(testCase)
%TESTLOADINGSAMPLEHEADER Check a full-featured sample.
header = LabviewHeader('data/sample_header.ini', 'LOGIN');
testCase.checkHeaderContents(header);
end
function testDefaultConstructor(testCase)
%TESTDEFAULTCONSTRUCTOR Check can construct and load separately.
header = LabviewHeader();
testCase.verifyEmpty(header.path);
testCase.verifyEmpty(header.defaultSection);
testCase.verifyEmpty(header.sections());
testCase.verifyFalse(header.hasSection('blah'));
testCase.verifyFalse(header.hasItem('item'));
header.defaultSection = 'LOGIN';
header.load('data/sample_header.ini');
testCase.checkHeaderContents(header);
end
end
methods
function checkHeaderContents(testCase, header)
%CHECKHEADERCONTENTS Check the contents of the sample .ini.
testCase.verifyMatches(header.path, '.*sample_header\.ini');
testCase.verifyEqual(header.defaultSection, 'LOGIN');
testCase.verifyEqual(header.sections(), ...
{'', 'GLOBAL PARAMETERS', 'LOGIN', ...
'MOVEMENT CORRECTION','STATISTICS'});
testCase.verifyTrue(header.hasSection('LOGIN'));
testCase.verifyTrue(header.hasItem('GLOBAL PARAMETERS', 'pockels'));
testCase.verifyTrue(header.hasItem('User'));
testCase.verifyEqual(header.item('User'), 'Angus');
testCase.verifyEqual(header.item('', 'Orphan item'), 'Poor me!');
testCase.verifyEqual(header.itemNames(), {'User'});
testCase.verifyEqual(header.itemNames('MOVEMENT CORRECTION'), ...
{'MovCor Enabled?', 'Reference Size'});
header.defaultSection = 'GLOBAL PARAMETERS';
testCase.verifyEqual(header.item('# averaged frames'), 16.0);
testCase.verifyEqual(header.item('laser power (%)'), 60.0);
testCase.verifyEqual(header.item('pockels'), -1);
testCase.verifyEqual(header.item('STATISTICS', 'Z-stack duration (sec)'), ...
56.67, 'AbsTol', 0.01);
testCase.verifyEqual(header.item('STATISTICS', 'Z-stack duration (sec)'), ...
56.674242, 'AbsTol', 0.000001);
testCase.verifyEqual(header.item('MOVEMENT CORRECTION', 'Reference Size'), ...
'15 x 18 pixels');
testCase.verifyError(@() header.item('blah'), 'LabviewHeader:item:missing');
testCase.verifyError(@() header.item('LOGIN', 'oops'), 'LabviewHeader:item:missing');
end
end
end