patch 8.0.0167: str2nr()/str2float() fail with negative values

Problem:    str2nr() and str2float() do not always work with negative values.
Solution:   Be more flexible about handling signs. (LemonBoy, closes #1332)
            Add more tests.
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
new file mode 100644
index 0000000..ec816d1
--- /dev/null
+++ b/src/testdir/test_functions.vim
@@ -0,0 +1,18 @@
+" Tests for various functions.
+
+func Test_str2nr()
+  call assert_equal(0, str2nr(''))
+  call assert_equal(1, str2nr('1'))
+  call assert_equal(1, str2nr(' 1 '))
+
+  call assert_equal(1, str2nr('+1'))
+  call assert_equal(1, str2nr('+ 1'))
+  call assert_equal(1, str2nr(' + 1 '))
+
+  call assert_equal(-1, str2nr('-1'))
+  call assert_equal(-1, str2nr('- 1'))
+  call assert_equal(-1, str2nr(' - 1 '))
+
+  call assert_equal(123456789, str2nr('123456789'))
+  call assert_equal(-123456789, str2nr('-123456789'))
+endfunc