public void TestRandom() { var joints = new JointSet("a", "b"); var maxAcc = new double?[] { 10, 10 }; var maxVel = new double?[] { 50, 10 }; var minPos = new double?[] { -10, 0 }; var maxPos = new double?[] { 50, 10 }; JointLimits jl = new JointLimits(joints, maxVel, maxAcc, minPos, maxPos); for (int i = 0; i < 100; ++i) { var a = JointValues.Random(jl); Assert.True(a[0] >= minPos[0]); Assert.True(a[1] >= minPos[1]); Assert.True(a[0] <= maxPos[0]); Assert.True(a[1] <= maxPos[1]); } Assert.Throws <ArgumentNullException>(() => JointValues.Random(null)); // assert that there must be a jointlimit for every name in jointset maxAcc = new double?[] { 10, 10 }; maxVel = new double?[] { 50, 10 }; minPos = new double?[] { null, 0 }; maxPos = new double?[] { 50, 10 }; jl = new JointLimits(joints, maxVel, maxAcc, minPos, maxPos); Assert.Throws <ArgumentException>(() => JointValues.Random(jl)); }
public static JointValues RandomJointValues(JointLimits limits, Random rng = null) { return(JointValues.Random(limits, rng ?? ThreadSafeRandom.Generator)); }