@@ -0,0 +1,1807 @@
+package com.easternedgerobotics.rov.control;%0A%0Aimport com.easternedgerobotics.rov.value.MotionValue;%0A%0Aimport org.junit.Assert;%0Aimport org.junit.Test;%0Aimport org.junit.runner.RunWith;%0Aimport org.junit.runners.Parameterized;%0A%0Aimport java.util.Arrays;%0A%0A@RunWith(Parameterized.class)%0A@SuppressWarnings(%7B%22checkstyle:magicnumber%22%7D)%0Apublic class ExponentialMotionScaleTest %7B%0A    @Parameterized.Parameters(name = %22Input %7B0%7D =%3E Output %7B1%7D%22)%0A    public static Iterable%3CFloat%5B%5D%3E data() %7B%0A        return Arrays.asList(new Float%5B%5D%5B%5D %7B%0A            %7B0.00f,        0f%7D,%0A            %7B0.05f, 0.029839f%7D,%0A            %7B0.10f, 0.061207f%7D,%0A            %7B0.15f, 0.094184f%7D,%0A            %7B0.20f, 0.128851f%7D,%0A            %7B0.25f, 0.165296f%7D,%0A            %7B0.30f, 0.203610f%7D,%0A            %7B0.35f, 0.243888f%7D,%0A            %7B0.40f, 0.286231f%7D,%0A            %7B0.45f, 0.330744f%7D,%0A            %7B0.50f, 0.377541f%7D,%0A            %7B0.55f, 0.426736f%7D,%0A            %7B0.60f, 0.478454f%7D,%0A            %7B0.65f, 0.532823f%7D,%0A            %7B0.70f, 0.589980f%7D,%0A            %7B0.75f, 0.650068f%7D,%0A            %7B0.80f, 0.713236f%7D,%0A            %7B0.85f, 0.779643f%7D,%0A            %7B0.90f, 0.849455f%7D,%0A            %7B0.95f, 0.922846f%7D,%0A            %7B1.00f,        1f%7D%0A        %7D);%0A    %7D%0A%0A    private final float input;%0A%0A    private final float expected;%0A%0A    public ExponentialMotionScaleTest(final float input, final float expected) %7B%0A        this.input = input;%0A        this.expected = expected;%0A    %7D%0A%0A    @Test%0A    public final void exponentialScaling() %7B%0A        final ExponentialMotionScale scale = new ExponentialMotionScale();%0A        final MotionValue inputMotion = MotionValue.create(input, 0, 0, 0, 0, 0);%0A        final MotionValue expectedMotion = MotionValue.create(expected, 0, 0, 0, 0, 0);%0A        Assert.assertEquals(expectedMotion, scale.apply(inputMotion));%0A    %7D%0A%7D%0A

Add test cases for joystick input scaling