diff --git a/resources/project/FI0gxbH-PhwjE_riDQGHPyYMHks/AmJAKvt15XQGz6JdpTsYHCBwsj0d.xml b/resources/project/FI0gxbH-PhwjE_riDQGHPyYMHks/AmJAKvt15XQGz6JdpTsYHCBwsj0d.xml
new file mode 100644
index 0000000..378b613
--- /dev/null
+++ b/resources/project/FI0gxbH-PhwjE_riDQGHPyYMHks/AmJAKvt15XQGz6JdpTsYHCBwsj0d.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/project/FI0gxbH-PhwjE_riDQGHPyYMHks/AmJAKvt15XQGz6JdpTsYHCBwsj0p.xml b/resources/project/FI0gxbH-PhwjE_riDQGHPyYMHks/AmJAKvt15XQGz6JdpTsYHCBwsj0p.xml
new file mode 100644
index 0000000..fc6006c
--- /dev/null
+++ b/resources/project/FI0gxbH-PhwjE_riDQGHPyYMHks/AmJAKvt15XQGz6JdpTsYHCBwsj0p.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/sensingModels/@sigmoidSensor/initialize.m b/sensingModels/@sigmoidSensor/initialize.m
index 7938fa8..04cd77b 100644
--- a/sensingModels/@sigmoidSensor/initialize.m
+++ b/sensingModels/@sigmoidSensor/initialize.m
@@ -11,7 +11,7 @@ function obj = initialize(obj, alphaDist, betaDist, alphaPan, betaPan, alphaTilt
arguments (Output)
obj (1, 1) {mustBeA(obj, 'sigmoidSensor')}
end
-
+
obj.alphaDist = alphaDist;
obj.betaDist = betaDist;
obj.alphaPan = alphaPan;
diff --git a/test/test_miSim.m b/test/test_miSim.m
index f79614a..9986c88 100644
--- a/test/test_miSim.m
+++ b/test/test_miSim.m
@@ -1,5 +1,6 @@
classdef test_miSim < matlab.unittest.TestCase
properties (Access = private)
+ % System under test
testClass = miSim;
% Sim
diff --git a/test/test_sigmoidSensor.m b/test/test_sigmoidSensor.m
new file mode 100644
index 0000000..676aac7
--- /dev/null
+++ b/test/test_sigmoidSensor.m
@@ -0,0 +1,50 @@
+classdef test_sigmoidSensor < matlab.unittest.TestCase
+ properties (Access = private)
+ % System under test
+ testClass = sigmoidSensor;
+
+ % Domain
+ domain = rectangularPrism;
+
+ % Sensor parameter ranges
+ betaDistMin = 3;
+ betaDistMax = 15;
+ betaTiltMin = 3;
+ betaTiltMax = 15;
+ alphaDistMin = 2.5;
+ alphaDistMax = 3;
+ alphaTiltMin = deg2rad(15);
+ alphaTiltMax = deg2rad(30);
+ end
+
+ methods (TestMethodSetup)
+ function tc = setup(tc)
+ % Reinitialize sensor with random parameters
+ tc.testClass = sigmoidSensor;
+ tc.testClass = tc.testClass.initialize(tc.alphaDistMin + rand * (tc.alphaDistMax - tc.alphaDistMin), tc.betaDistMin + rand * (tc.betaDistMax - tc.betaDistMin), NaN, NaN, tc.alphaTiltMin + rand * (tc.alphaTiltMax - tc.alphaTiltMin), tc.betaTiltMin + rand * (tc.betaTiltMax - tc.betaTiltMin));
+ end
+ end
+
+ methods (Test)
+ % Test methods
+ function test_sensorPerformance(tc)
+ tc.testClass = sigmoidSensor;
+ alphaDist = 2.5;
+ betaDist = 3;
+ alphaTilt = deg2rad(15);
+ betaTilt = 3;
+ tc.testClass = tc.testClass.initialize(alphaDist, betaDist, NaN, NaN, alphaTilt, betaTilt);
+
+ % Performance at current position should be maximized (1)
+ % some wiggle room is needed for certain parameter conditions,
+ % e.g. small alphaDist and betaDist produce mu_d slightly < 1
+ tc.verifyEqual(tc.testClass.sensorPerformance(zeros(1, 3), NaN, 0, zeros(1, 3)), 1, 'AbsTol', 1e-3);
+ % It looks like mu_t can max out at really low values like 0.37
+ % when alphaTilt and betaTilt are small, which seems wrong
+
+ % Performance at distance alphaDist should be 1/2
+ tc.verifyEqual(tc.testClass.sensorPerformance([0, 0, alphaDist], NaN, 0, [0, 0, 0]), 1/2, 'AbsTol', 1e-3);
+ end
+ end
+
+end
\ No newline at end of file