Fix GetUniform rounding in D3D. Also add a test.

The test will help cover a bug that I found when doing the refactor
of gl::Program.

BUG=angleproject:1123

Change-Id: Id353ffaffef83ad1538580ad01668c915bf9853f
Reviewed-on: https://chromium-review.googlesource.com/297031
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/d3d/ProgramD3D.cpp b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
index 0d32a50..13415a3 100644
--- a/src/libANGLE/renderer/d3d/ProgramD3D.cpp
+++ b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
@@ -1833,7 +1833,7 @@
 
                 for (unsigned int i = 0; i < size; i++)
                 {
-                    params[i] = static_cast<T>(floatParams[i]);
+                    params[i] = static_cast<T>(roundf(floatParams[i]));
                 }
             }
             break;