From 72ffe691cd444e40dd36e507b13a793dba7dc444 Mon Sep 17 00:00:00 2001 From: Erik Flodin Date: Thu, 15 Apr 2021 21:28:07 +0200 Subject: [PATCH] Make TEST_RANGE handle a single range Before this change a single range such as TEST_RANGE([5, 100, 5]) would generate the following error: undefined method `flatten' for 5:Integer (NoMethodError) The problem is that reduce called on an array with a single element returns that element which isn't an array of arrays as expected by the following block. --- auto/generate_test_runner.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/auto/generate_test_runner.rb b/auto/generate_test_runner.rb index 9401ad8..7a60f2e 100644 --- a/auto/generate_test_runner.rb +++ b/auto/generate_test_runner.rb @@ -149,8 +149,8 @@ class UnityTestRunnerGenerator end end.map do |arg_values| (arg_values[0]..arg_values[1]).step(arg_values[2]).to_a - end.reduce do |result, arg_range_expanded| - result.product(arg_range_expanded) + end.reduce(nil) do |result, arg_range_expanded| + result.nil? ? arg_range_expanded.map { |a| [a] } : result.product(arg_range_expanded) end.map do |arg_combinations| arg_combinations.flatten.join(', ') end