From 0875cf36791f5ac2136775518afe2e22698df5fa Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 16 Nov 2018 09:38:26 +0100 Subject: [PATCH 1/3] fix findMax for arrays with duplicates --- addons/arrays/fnc_findMax.sqf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/arrays/fnc_findMax.sqf b/addons/arrays/fnc_findMax.sqf index f8b1b9db7..0c482d218 100644 --- a/addons/arrays/fnc_findMax.sqf +++ b/addons/arrays/fnc_findMax.sqf @@ -28,5 +28,9 @@ SCRIPT(findMax); if !(_array isEqualTypeAll 0) exitWith {nil}; -private _max = selectMax _array; -[_max, _array find _max] +private _reverse = + _array; +reverse _reverse; + +private _max = selectMax _reverse; + +[_max, count _array - (_reverse find _max) - 1] From 13269030ff94c689538246b9f55d41002939e3b8 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 16 Nov 2018 09:41:36 +0100 Subject: [PATCH 2/3] formatting --- addons/arrays/fnc_findMax.sqf | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/arrays/fnc_findMax.sqf b/addons/arrays/fnc_findMax.sqf index 0c482d218..5d7838d2c 100644 --- a/addons/arrays/fnc_findMax.sqf +++ b/addons/arrays/fnc_findMax.sqf @@ -32,5 +32,4 @@ private _reverse = + _array; reverse _reverse; private _max = selectMax _reverse; - [_max, count _array - (_reverse find _max) - 1] From 181e3c49040a9d8078ad130068787e3a9cd483c0 Mon Sep 17 00:00:00 2001 From: commy2 Date: Wed, 21 Nov 2018 01:19:45 +0100 Subject: [PATCH 3/3] update test --- addons/arrays/test_findMax.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/arrays/test_findMax.sqf b/addons/arrays/test_findMax.sqf index 238bbb02c..6d8b0bc1a 100644 --- a/addons/arrays/test_findMax.sqf +++ b/addons/arrays/test_findMax.sqf @@ -41,7 +41,7 @@ TEST_OP(_result,isEqualTo,_expected,_fn); // Test unordered array with duplicate max values _result = [2, 15, 15, -3, -3] call CBA_fnc_findMax; -_expected = [15, 1]; +_expected = [15, 2]; TEST_OP(_result,isEqualTo,_expected,_fn); // Test invalid parameter array with bool