@@ -1162,4 +1162,80 @@ describe('Amount', function() {
1162
1162
assert . strictEqual ( demAmount . to_human_full ( ) , '10.75853086191915/XAU (-0.5%pa)/rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh' ) ;
1163
1163
} ) ;
1164
1164
} ) ;
1165
+
1166
+ describe ( 'amount limits' , function ( ) {
1167
+ it ( 'max JSON wire limite' , function ( ) {
1168
+ assert . strictEqual ( Amount . bi_xns_max . toString ( ) , '9000000000000000000' ) ;
1169
+ } ) ;
1170
+
1171
+ it ( 'max JSON wire limite' , function ( ) {
1172
+ assert . strictEqual ( Amount . bi_xns_min . toString ( ) , '-9000000000000000000' ) ;
1173
+ } ) ;
1174
+
1175
+ it ( 'max mantissa value' , function ( ) {
1176
+ assert . strictEqual ( Amount . bi_man_max_value . toString ( ) , '9999999999999999' ) ;
1177
+ } ) ;
1178
+
1179
+ it ( 'min mantissa value' , function ( ) {
1180
+ assert . strictEqual ( Amount . bi_man_min_value . toString ( ) , '1000000000000000' ) ;
1181
+ } ) ;
1182
+
1183
+ it ( 'from_json minimum XRP' , function ( ) {
1184
+ console . log ( 'max' , Amount . bi_xns_max . toString ( ) ) ;
1185
+ var amt = Amount . from_json ( '-9000000000000000000' ) ;
1186
+ assert . strictEqual ( amt . to_json ( ) , '-9000000000000000000' ) ;
1187
+ } ) ;
1188
+
1189
+ it ( 'from_json maximum XRP' , function ( ) {
1190
+ var amt = Amount . from_json ( '-9000000000000000000' ) ;
1191
+ assert . strictEqual ( amt . to_json ( ) , '-9000000000000000000' ) ;
1192
+ } ) ;
1193
+
1194
+ it ( 'from_json less than minimum XRP' , function ( ) {
1195
+ var amt = Amount . from_json ( '-9000000000000000001' ) ;
1196
+ assert . strictEqual ( amt . to_json ( ) , '0' ) ;
1197
+ } ) ;
1198
+
1199
+ it ( 'from_json more than maximum XRP' , function ( ) {
1200
+ var amt = Amount . from_json ( '9000000000000000001' ) ;
1201
+ assert . strictEqual ( amt . to_json ( ) , '0' ) ;
1202
+ } ) ;
1203
+
1204
+ it ( 'from_json minimum IOU' , function ( ) {
1205
+ var amt = Amount . from_json ( '-1e-81/USD/rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh' ) ;
1206
+ assert . strictEqual ( amt . _value . toString ( ) , Amount . bi_man_min_value . toString ( ) ) ;
1207
+ assert . strictEqual ( amt . to_text ( ) , '-1000000000000000e-96' ) ;
1208
+ assert . strictEqual ( amt . to_text ( ) , Amount . min_value ) ;
1209
+ } ) ;
1210
+
1211
+ it ( 'from_json exceed minimum IOU' , function ( ) {
1212
+ assert . throws ( function ( ) {
1213
+ Amount . from_json ( '-1e-82/USD/rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh' )
1214
+ } , 'Exceeding min value of ' + Amount . min_value ) ;
1215
+ } ) ;
1216
+
1217
+ it ( 'from_json maximum IOU' , function ( ) {
1218
+ var amt = Amount . from_json ( '9999999999999999e80/USD/rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh' ) ;
1219
+ assert . strictEqual ( amt . _value . toString ( ) , Amount . bi_man_max_value . toString ( ) ) ;
1220
+ assert . strictEqual ( amt . to_text ( ) , '9999999999999999e80' ) ;
1221
+ } ) ;
1222
+
1223
+ it ( 'from_json exceed maximum IOU' , function ( ) {
1224
+ assert . throws ( function ( ) {
1225
+ Amount . from_json ( '9999999999999999e81/USD/rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh' )
1226
+ } , 'Exceeding max value of ' + Amount . max_value ) ;
1227
+ } ) ;
1228
+
1229
+ it ( 'from_json normalize mantissa to valid max range, lost significant digits' , function ( ) {
1230
+ var amt = Amount . from_json ( '99999999999999999999999999999999/USD/rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh' ) ;
1231
+ assert . strictEqual ( amt . _value . toString ( ) , Amount . bi_man_max_value . toString ( ) ) ;
1232
+ assert . strictEqual ( amt . to_text ( ) , '9999999999999999e16' ) ;
1233
+ } ) ;
1234
+
1235
+ it ( 'from_json normalize mantissa to min valid range, lost significant digits' , function ( ) {
1236
+ var amt = Amount . from_json ( '-0.0000000000000000000000001/USD/rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh' ) ;
1237
+ assert . strictEqual ( amt . _value . toString ( ) , Amount . bi_man_min_value . toString ( ) ) ;
1238
+ assert . strictEqual ( amt . to_text ( ) , '-1000000000000000e-40' ) ;
1239
+ } ) ;
1240
+ } ) ;
1165
1241
} ) ;
0 commit comments