From 0bcdd73882697605a8f78ab817bfefd8bc351e7f Mon Sep 17 00:00:00 2001 From: Kevin D Date: Tue, 31 Mar 2026 21:49:06 -0700 Subject: [PATCH] interface updates for test cases --- @miSim/validate.m | 2 +- @sensingObjective/initializeRandomMvnpdf.m | 4 ++-- test/parametricTestSuite.m | 6 ++++-- test/test_miSim.m | 12 ++++++------ 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/@miSim/validate.m b/@miSim/validate.m index dba8f6e..0352285 100644 --- a/@miSim/validate.m +++ b/@miSim/validate.m @@ -21,7 +21,7 @@ function validate(obj) P = min(max(obj.agents{kk}.pos, obj.obstacles{jj}.minCorner), obj.obstacles{jj}.maxCorner); d = obj.agents{kk}.pos - P; if dot(d, d) < obj.agents{kk}.collisionGeometry.radius^2 - error("%s colliding with %s by %d", obj.agents{kk}.label, obj.obstacles{jj}.label, dot(d, d) - obj.agents{kk}.collisionGeometry.radius^2); % this will cause quadprog to fail + error("%s colliding with %s by %d", obj.agents{kk}.label, obj.obstacles{jj}.label, obj.agents{kk}.collisionGeometry.radius^2 - dot(d, d)); % this will cause quadprog to fail end end end diff --git a/@sensingObjective/initializeRandomMvnpdf.m b/@sensingObjective/initializeRandomMvnpdf.m index 06494ae..d1a4732 100644 --- a/@sensingObjective/initializeRandomMvnpdf.m +++ b/@sensingObjective/initializeRandomMvnpdf.m @@ -16,11 +16,11 @@ function obj = initializeRandomMvnpdf(obj, domain, discretizationStep, protected end % Set random distribution parameters - sig = [2 + rand * 2, 1; 1, 2 + rand * 2]; + sig = reshape([2 + rand * 2, 1; 1, 2 + rand * 2], [1 2 2]); % Set up random bivariate normal distribution function objectiveFunction = objectiveFunctionWrapper(mu(1:2), sig); % Regular initialization - obj = obj.initialize(objectiveFunction, domain, discretizationStep, protectedRange); + obj = obj.initialize(objectiveFunction, domain, discretizationStep, protectedRange, 1e-6, mu(1:2), sig); end \ No newline at end of file diff --git a/test/parametricTestSuite.m b/test/parametricTestSuite.m index aa1078d..273030c 100644 --- a/test/parametricTestSuite.m +++ b/test/parametricTestSuite.m @@ -34,7 +34,8 @@ classdef parametricTestSuite < matlab.unittest.TestCase % Define scenario according to CSV specification tc.domain = tc.domain.initialize([params.domainMin; params.domainMax], REGION_TYPE.DOMAIN, "Domain"); - tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper(params.objectivePos, reshape(params.objectiveVar, [2 2])), tc.domain, params.discretizationStep, params.protectedRange, params.sensorPerformanceMinimum); + objectiveSigma = reshape(params.objectiveVar, [1 2 2]); + tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper(params.objectivePos, objectiveSigma), tc.domain, params.discretizationStep, params.protectedRange, params.sensorPerformanceMinimum, params.objectivePos, objectiveSigma); agents = cell(size(params.initialPositions, 2) / 3, 1); for ii = 1:size(agents, 1) @@ -81,7 +82,8 @@ classdef parametricTestSuite < matlab.unittest.TestCase for ii = 1:size(params.timestep, 1) % Set up square domain tc.domain = tc.domain.initialize([zeros(1, 3); l * ones(1, 3)], REGION_TYPE.DOMAIN, "Domain"); - tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper([.75 * l, 0.75 * l]), tc.domain, params.discretizationStep(ii), params.protectedRange(ii), params.sensorPerformanceMinimum(ii)); + objectiveCenter = [.75 * l, 0.75 * l]; + tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper(objectiveCenter), tc.domain, params.discretizationStep(ii), params.protectedRange(ii), params.sensorPerformanceMinimum(ii), objectiveCenter); % Initialize agents agents = cell(params.numAgents(ii), 1); diff --git a/test/test_miSim.m b/test/test_miSim.m index a0085e1..658ac22 100644 --- a/test/test_miSim.m +++ b/test/test_miSim.m @@ -437,7 +437,7 @@ classdef test_miSim < matlab.unittest.TestCase tc.domain = tc.domain.initialize([zeros(1, 3);tc.minDimension* ones(1, 3)], REGION_TYPE.DOMAIN, "Domain"); % make basic sensing objective - tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper([7, 6]), tc.domain, tc.discretizationStep, tc.protectedRange); + tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper([7, 6]), tc.domain, tc.discretizationStep, tc.protectedRange, 1e-6, [7, 6]); % Initialize agent collision geometry tc.agents = {agent}; @@ -466,7 +466,7 @@ classdef test_miSim < matlab.unittest.TestCase tc.domain = tc.domain.initialize([zeros(1, 3);tc.minDimension* ones(1, 3)], REGION_TYPE.DOMAIN, "Domain"); % make basic sensing objective - tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper([3, 7]), tc.domain, tc.discretizationStep, tc.protectedRange); + tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper([3, 7]), tc.domain, tc.discretizationStep, tc.protectedRange, 1e-6, [3, 7]); % Initialize agent collision geometry tc.agents = {agent; agent}; @@ -504,7 +504,7 @@ classdef test_miSim < matlab.unittest.TestCase tc.domain = tc.domain.initialize([zeros(1, 3);tc.minDimension* ones(1, 3)], REGION_TYPE.DOMAIN, "Domain"); % make basic sensing objective - tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper([8, 5.2195]), tc.domain, tc.discretizationStep, tc.protectedRange); + tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper([8, 5.2195]), tc.domain, tc.discretizationStep, tc.protectedRange, 1e-6, [8, 5.2195]); % Initialize agent collision geometry tc.agents = {agent; agent;}; @@ -588,7 +588,7 @@ classdef test_miSim < matlab.unittest.TestCase tc.domain = tc.domain.initialize([zeros(1, 3); tc.minDimension* ones(1, 3)], REGION_TYPE.DOMAIN, "Domain"); % make basic sensing objective - tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper([8, 5]), tc.domain, tc.discretizationStep, tc.protectedRange); + tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper([8, 5]), tc.domain, tc.discretizationStep, tc.protectedRange, 1e-6, [8, 5]); % Initialize agent collision geometry tc.agents = {agent; agent;}; @@ -633,7 +633,7 @@ classdef test_miSim < matlab.unittest.TestCase tc.domain = tc.domain.initialize([zeros(1, 3);tc.minDimension* ones(1, 3)], REGION_TYPE.DOMAIN, "Domain"); % make basic sensing objective - tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper([8, 5]), tc.domain, tc.discretizationStep, tc.protectedRange); + tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper([8, 5]), tc.domain, tc.discretizationStep, tc.protectedRange, 1e-6, [8, 5]); % Initialize agent collision geometry tc.agents = {agent; agent; agent; agent; agent;}; @@ -683,7 +683,7 @@ classdef test_miSim < matlab.unittest.TestCase tc.domain = tc.domain.initialize([zeros(1, 3); tc.minDimension* ones(1, 3)], REGION_TYPE.DOMAIN, "Domain"); % make basic sensing objective - tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper([8, 5]), tc.domain, tc.discretizationStep, tc.protectedRange); + tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper([8, 5]), tc.domain, tc.discretizationStep, tc.protectedRange, 1e-6, [8, 5]); % Initialize agent collision geometry tc.agents = {agent; agent; agent; agent; agent; agent; agent;};