PowerShell functions are called with parameters / arguments separated by spaces, not commas. There are also not any parentheses around the parameter list in the function call.
("one", "two") is actually an array which is bound to a single parameter, as you've seen. With your function definition as-is (with two optional parameters that can both be passed by either name or position), here are the legal ways you could call it:
# no parameters
# two parameters by name
test -Val1 "one" -Val2 "two"
# two parameters by position
test "one" "two"
# One parameter by name (either one)
test -Val1 "one"
test -Val2 "two"
# One parameter by position (Val1 only)