[randlib] update messages in grand 38/20838/2
Adeline CARNIS [Tue, 12 Feb 2019 10:42:25 +0000 (11:42 +0100)]
Change-Id: Ia0903baa51cd638f3e3d4d72d55c485c94d91865

scilab/modules/randlib/sci_gateway/cpp/sci_grand.cpp
scilab/modules/randlib/tests/nonreg_tests/bug_15490.tst

index c36b7dd..0c4e3bf 100644 (file)
@@ -1203,22 +1203,25 @@ types::Function::ReturnValue sci_grand(types::typed_list &in, int _iRetCount, ty
                 }
             }
 
-            long long int low  = static_cast<long long int>(vectpDblInput[0]->get(0));
-            long long int high = static_cast<long long int>(vectpDblInput[1]->get(0));
+            int low  = static_cast<int>(vectpDblInput[0]->get(0));
+            int high = static_cast<int>(vectpDblInput[1]->get(0));
 
-            if (low > high)
+            // 2147483561 is provided by clcg2 generator. It is present in igniun function.
+            // we take (b-a+1) <= Min RngMaxInt =  2147483561 (clcg2)
+
+            if ( low  != vectpDblInput[0]->get(0) ||
+                    high != vectpDblInput[1]->get(0) ||
+                    (high - low + 1) > 2147483561)
             {
                 delete pDblOut;
-                Scierror(999, _("%s: Wrong value for input arguments #%d and #%d: Low < High expected.\n"), "grand", iPos + 1, iPos + 2);
+                Scierror(999, _("%s: Wrong value for input arguments #%d and #%d: Low and High must be a 32 bits integer value and (high - low + 1) <=  2147483561.\n"), "grand", iPos + 1, iPos + 2);
                 return types::Function::Error;
             }
 
-            if ( low  != vectpDblInput[0]->get(0) ||
-                    high != vectpDblInput[1]->get(0) ||
-                    (high - low + 1) > 2147483647)
+            if (low > high)
             {
                 delete pDblOut;
-                Scierror(999, _("%s: Wrong value for input arguments #%d and #%d: Low and High must be integers and (high - low + 1) <=  2147483647.\n"), "grand", iPos + 1, iPos + 2);
+                Scierror(999, _("%s: Wrong value for input arguments #%d and #%d: Low < High expected.\n"), "grand", iPos + 1, iPos + 2);
                 return types::Function::Error;
             }
 
index b747474..8720d4c 100644 (file)
@@ -17,5 +17,5 @@
 // Error message of grand function was incoherent
 
 assert_checkfalse(execstr("grand(2,2,2,""uin"",0,2^31)"   ,"errcatch") == 0);
-refMsg = msprintf(_("%s: Wrong value for input arguments #%d and #%d: Low and High must be integers and (high - low + 1) <=  2147483561.\n"), "grand", 5, 6);
+refMsg = msprintf(_("%s: Wrong value for input arguments #%d and #%d: Low and High must be a 32 bits integer value and (high - low + 1) <=  2147483561.\n"), "grand", 5, 6);
 assert_checkerror("grand(2,2,2,""uin"",0,2^31)", refMsg);