public void testDivideRoundHalfEvenNeg(){
  String a="-92948782094488478231212478987482988429808779810457634781384756794987";
  int aScale=-24;
  String b="7472334223847623782375469293018787918347987234564568";
  int bScale=13;
  String c="-1.24390557635720517122423359799284E+53";
  int resScale=-21;
  BigDecimal aNumber=new BigDecimal(new BigInteger(a),aScale);
  BigDecimal bNumber=new BigDecimal(new BigInteger(b),bScale);
  BigDecimal result=aNumber.divide(bNumber,resScale,BigDecimal.ROUND_HALF_EVEN);
  assertEquals("incorrect value",c,result.toString());
  assertEquals("incorrect scale",resScale,result.scale());
}

public void testDivideRoundHalfEvenNeg ( ) { String a = "-92948782094488478231212478987482988429808779810457634781384756794987" ; int aScale = - 24 ; String b = "7472334223847623782375469293018787918347987234564568" ; int bScale = 13 ; String c = "-1.24390557635720517122423359799284E+53" ; int resScale = - 21 ; BigDecimal aNumber = new BigDecimal ( new BigInteger ( a ) , aScale ) ; BigDecimal bNumber = new BigDecimal ( new BigInteger ( b ) , bScale ) ; BigDecimal result = aNumber . divide ( bNumber , resScale , BigDecimal . ROUND_HALF_EVEN ) ; assertEquals ( "incorrect value" , c , result . toString ( ) ) ; assertEquals ( "incorrect scale" , resScale , result . scale ( ) ) ; }
divide : rounding mode is round_half_even , result is negative ; distance = - 1
