[bug-62738] make int cast a long cast in randbetween
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1841321 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c11d29c72b
commit
74c07d5307
@ -77,7 +77,7 @@ final class RandBetween implements FreeRefFunction{
|
|||||||
top = bottom;
|
top = bottom;
|
||||||
}
|
}
|
||||||
|
|
||||||
return new NumberEval((bottom + (int)(Math.random() * ((top - bottom) + 1))));
|
return new NumberEval((bottom + (long)(Math.random() * ((top - bottom) + 1))));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,12 +53,6 @@ public class TestRandBetween extends TestCase {
|
|||||||
formulaCell = row.createCell(2, CellType.FORMULA);
|
formulaCell = row.createCell(2, CellType.FORMULA);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void tearDown() throws Exception {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
super.tearDown();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check where values are the same
|
* Check where values are the same
|
||||||
*/
|
*/
|
||||||
@ -75,6 +69,17 @@ public class TestRandBetween extends TestCase {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testRandBetweenLargeLongs() {
|
||||||
|
for (int i = 0; i < 100; i++) {
|
||||||
|
evaluator.clearAllCachedResultValues();
|
||||||
|
formulaCell.setCellFormula("RANDBETWEEN(0,9999999999)");
|
||||||
|
evaluator.evaluateFormulaCell(formulaCell);
|
||||||
|
double value = formulaCell.getNumericCellValue();
|
||||||
|
assertTrue("rand is greater than or equal to lowerbound", value >= 0.0);
|
||||||
|
assertTrue("rand is less than or equal to upperbound", value <= 9999999999.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check special case where rounded up bottom value is greater than
|
* Check special case where rounded up bottom value is greater than
|
||||||
* top value.
|
* top value.
|
||||||
|
Loading…
Reference in New Issue
Block a user