| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 // Dart test program to test arithmetic operations. | 4 // Dart test program to test arithmetic operations. |
| 5 | 5 |
| 6 library arithmetic_test; | 6 library arithmetic_test; |
| 7 import 'dart:math'; | 7 import 'dart:math'; |
| 8 | 8 |
| 9 class ArithmeticTest { | 9 class ArithmeticTest { |
| 10 | 10 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 Expect.equals(5, a ~/ b); | 74 Expect.equals(5, a ~/ b); |
| 75 Expect.equals(5.5, a / b); | 75 Expect.equals(5.5, a / b); |
| 76 Expect.equals(2.0, a % b); | 76 Expect.equals(2.0, a % b); |
| 77 Expect.equals(2.0, a.remainder(b)); | 77 Expect.equals(2.0, a.remainder(b)); |
| 78 a = 22.0; | 78 a = 22.0; |
| 79 b = 4.0; | 79 b = 4.0; |
| 80 // Double & double. | 80 // Double & double. |
| 81 Expect.equals(26.0, a + b); | 81 Expect.equals(26.0, a + b); |
| 82 Expect.equals(18.0, a - b); | 82 Expect.equals(18.0, a - b); |
| 83 Expect.equals(88.0, a * b); | 83 Expect.equals(88.0, a * b); |
| 84 Expect.equals(5.0, a ~/ b); | 84 Expect.equals(5, a ~/ b); |
| 85 Expect.equals(5.5, a / b); | 85 Expect.equals(5.5, a / b); |
| 86 Expect.equals(2.0, a % b); | 86 Expect.equals(2.0, a % b); |
| 87 Expect.equals(2.0, a.remainder(b)); | 87 Expect.equals(2.0, a.remainder(b)); |
| 88 | 88 |
| 89 // Special int operations. | 89 // Special int operations. |
| 90 Expect.equals(2, (2).floor()); | 90 Expect.equals(2, (2).floor()); |
| 91 Expect.equals(2, (2).ceil()); | 91 Expect.equals(2, (2).ceil()); |
| 92 Expect.equals(2, (2).round()); | 92 Expect.equals(2, (2).round()); |
| 93 Expect.equals(2, (2).truncate()); | 93 Expect.equals(2, (2).truncate()); |
| 94 | 94 |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 | 199 |
| 200 // -- ceil --. | 200 // -- ceil --. |
| 201 // Smi. | 201 // Smi. |
| 202 Expect.equals(0, (0).ceil()); | 202 Expect.equals(0, (0).ceil()); |
| 203 Expect.equals(1, (1).ceil()); | 203 Expect.equals(1, (1).ceil()); |
| 204 Expect.equals(-1, (-1).ceil()); | 204 Expect.equals(-1, (-1).ceil()); |
| 205 // Big. | 205 // Big. |
| 206 Expect.equals(big, big.ceil()); | 206 Expect.equals(big, big.ceil()); |
| 207 Expect.equals(-big, (-big).ceil()); | 207 Expect.equals(-big, (-big).ceil()); |
| 208 // Double. | 208 // Double. |
| 209 Expect.equals(0.0, (0.0).ceil()); | 209 Expect.equals(0, (0.0).ceil()); |
| 210 Expect.equals(false, (0.0).ceil().isNegative); | 210 Expect.equals(false, (0.0).ceil().isNegative); |
| 211 Expect.equals(1.0, (0.1).ceil()); | 211 Expect.equals(1, (0.1).ceil()); |
| 212 Expect.equals(1.0, double.MIN_POSITIVE.ceil()); | 212 Expect.equals(1, double.MIN_POSITIVE.ceil()); |
| 213 Expect.equals(1.0, (0.49999999999999994).ceil()); | 213 Expect.equals(1, (0.49999999999999994).ceil()); |
| 214 Expect.equals(-0.0, (-0.0).ceil()); | 214 Expect.equals(0, (-0.0).ceil()); |
| 215 Expect.equals(-0.0, (-0.3).ceil()); | 215 Expect.equals(0, (-0.3).ceil()); |
| 216 Expect.isTrue((-0.0).ceil().isNegative); | 216 Expect.isTrue((-0.0).ceil() is int); |
| 217 Expect.isTrue((-0.3).ceil().isNegative); | 217 Expect.isTrue((-0.3).ceil() is int); |
| 218 Expect.equals(-0.0, (-0.49999999999999994).ceil()); | 218 Expect.equals(0, (-0.49999999999999994).ceil()); |
| 219 Expect.isTrue((-0.49999999999999994).ceil().isNegative); | 219 Expect.equals(3, (2.1).ceil()); |
| 220 Expect.equals(3.0, (2.1).ceil()); | 220 Expect.equals(-2, (-2.1).ceil()); |
| 221 Expect.equals(-2.0, (-2.1).ceil()); | |
| 222 | 221 |
| 223 // -- floor --. | 222 // -- floor --. |
| 224 // Smi. | 223 // Smi. |
| 225 Expect.equals(0, (0).floor()); | 224 Expect.equals(0, (0).floor()); |
| 226 Expect.equals(1, (1).floor()); | 225 Expect.equals(1, (1).floor()); |
| 227 Expect.equals(-1, (-1).floor()); | 226 Expect.equals(-1, (-1).floor()); |
| 228 // Big. | 227 // Big. |
| 229 Expect.equals(big, big.floor()); | 228 Expect.equals(big, big.floor()); |
| 230 Expect.equals(-big, (-big).floor()); | 229 Expect.equals(-big, (-big).floor()); |
| 231 // Double. | 230 // Double. |
| 232 Expect.equals(0.0, (0.0).floor()); | 231 Expect.equals(0, (0.0).floor()); |
| 233 Expect.equals(0.0, (0.1).floor()); | 232 Expect.equals(0, (0.1).floor()); |
| 234 Expect.equals(0.0, (0.49999999999999994).floor()); | 233 Expect.equals(0, (0.49999999999999994).floor()); |
| 235 Expect.equals(0.0, double.MIN_POSITIVE.floor()); | 234 Expect.equals(0, double.MIN_POSITIVE.floor()); |
| 236 Expect.equals(false, (0.0).floor().isNegative); | 235 Expect.isTrue((0.0).floor() is int); |
| 237 Expect.equals(false, (0.1).floor().isNegative); | 236 Expect.isTrue((0.1).floor() is int); |
| 238 Expect.equals(-0.0, (-0.0).floor()); | 237 Expect.equals(0, (-0.0).floor()); |
| 239 Expect.equals(true, (-0.0).floor().isNegative); | 238 Expect.isTrue((-0.0).floor() is int); |
| 240 Expect.equals(-1.0, (-0.1).floor()); | 239 Expect.equals(-1, (-0.1).floor()); |
| 240 Expect.equals(2, (2.1).floor()); |
| 241 Expect.equals(-3, (-2.1).floor()); |
| 241 Expect.equals(-1.0, (-0.49999999999999994).floor()); | 242 Expect.equals(-1.0, (-0.49999999999999994).floor()); |
| 242 Expect.equals(2.0, (2.1).floor()); | |
| 243 Expect.equals(-3.0, (-2.1).floor()); | |
| 244 Expect.equals(-3.0, (-2.1).floor()); | 243 Expect.equals(-3.0, (-2.1).floor()); |
| 245 | 244 |
| 246 | 245 |
| 247 // -- truncate --. | 246 // -- truncate --. |
| 248 // Smi. | 247 // Smi. |
| 249 Expect.equals(0, (0).truncate()); | 248 Expect.equals(0, (0).truncate()); |
| 250 Expect.equals(1, (1).truncate()); | 249 Expect.equals(1, (1).truncate()); |
| 251 Expect.equals(-1, (-1).truncate()); | 250 Expect.equals(-1, (-1).truncate()); |
| 252 // Big. | 251 // Big. |
| 253 Expect.equals(big, big.truncate()); | 252 Expect.equals(big, big.truncate()); |
| 254 Expect.equals(-big, (-big).truncate()); | 253 Expect.equals(-big, (-big).truncate()); |
| 255 // Double. | 254 // Double. |
| 256 Expect.equals(0.0, (0.0).truncate()); | 255 Expect.equals(0, (0.0).truncate()); |
| 257 Expect.equals(0.0, (0.1).truncate()); | 256 Expect.equals(0, (0.1).truncate()); |
| 258 Expect.equals(false, (0.0).truncate().isNegative); | 257 Expect.isTrue((0.0).truncate() is int); |
| 259 Expect.equals(false, (0.1).truncate().isNegative); | 258 Expect.isTrue((0.1).truncate() is int); |
| 260 Expect.equals(-0.0, (-0.0).truncate()); | 259 Expect.equals(0, (-0.0).truncate()); |
| 261 Expect.equals(-0.0, (-0.3).truncate()); | 260 Expect.equals(0, (-0.3).truncate()); |
| 262 Expect.equals(true, (-0.0).truncate().isNegative); | 261 Expect.isTrue((-0.0).truncate() is int); |
| 263 Expect.equals(true, (-0.3).truncate().isNegative); | 262 Expect.isTrue((-0.3).truncate() is int); |
| 264 Expect.equals(2.0, (2.1).truncate()); | 263 Expect.equals(2, (2.1).truncate()); |
| 265 Expect.equals(-2.0, (-2.1).truncate()); | 264 Expect.equals(-2, (-2.1).truncate()); |
| 266 | 265 |
| 267 double b1 = (1234567890123.0).truncate(); | 266 int b1 = (1234567890123.0).truncate(); |
| 268 double b2 = (1234567890124.0).truncate(); | 267 int b2 = (1234567890124.0).truncate(); |
| 269 Expect.equals(b2, b1 + 1.0); | 268 Expect.equals(b2, b1 + 1.0); |
| 270 | 269 |
| 271 // -- round --. | 270 // -- round --. |
| 272 // Smi. | 271 // Smi. |
| 273 Expect.equals(0, (0).round()); | 272 Expect.equals(0, (0).round()); |
| 274 Expect.equals(1, (1).round()); | 273 Expect.equals(1, (1).round()); |
| 275 Expect.equals(-1, (-1).round()); | 274 Expect.equals(-1, (-1).round()); |
| 276 // Big. | 275 // Big. |
| 277 Expect.equals(big, big.round()); | 276 Expect.equals(big, big.round()); |
| 278 Expect.equals(-big, (-big).round()); | 277 Expect.equals(-big, (-big).round()); |
| 279 // Double. | 278 // Double. |
| 280 Expect.equals(3.0, (2.6).round()); | 279 Expect.equals(3, (2.6).round()); |
| 281 Expect.equals(-3.0, (-2.6).round()); | 280 Expect.equals(-3, (-2.6).round()); |
| 282 Expect.equals(3.0, (2.5).round()); | 281 Expect.equals(0, (0.0).round()); |
| 283 Expect.equals(-3.0, (-2.5).round()); | 282 Expect.equals(0, (0.1).round()); |
| 284 Expect.equals(0.0, (0.0).round()); | 283 Expect.equals(3, (2.5).round()); |
| 285 Expect.equals(0.0, (0.1).round()); | 284 Expect.equals(-3, (-2.5).round()); |
| 286 Expect.equals(false, (0.0).round().isNegative); | 285 Expect.isFalse((0.0).round().isNegative); |
| 287 Expect.equals(false, (0.1).round().isNegative); | 286 Expect.isFalse((0.1).round().isNegative); |
| 288 Expect.equals(-0.0, (-0.0).round()); | 287 Expect.equals(0, (-0.0).round()); |
| 289 Expect.equals(-0.0, (-0.3).round()); | 288 Expect.equals(0, (-0.3).round()); |
| 290 Expect.equals(2.0, (2.1).round()); | 289 Expect.equals(2, (2.1).round()); |
| 291 Expect.equals(-2.0, (-2.1).round()); | 290 Expect.equals(-2, (-2.1).round()); |
| 292 Expect.equals(1.0, (0.5).round()); | 291 Expect.equals(1, (0.5).round()); |
| 293 Expect.equals(0.0, (0.49999999999999994).round()); | 292 Expect.equals(0, (0.49999999999999994).round()); |
| 294 Expect.equals(-0.0, (-0.49999999999999994).round()); | 293 Expect.equals(0, (-0.49999999999999994).round()); |
| 295 Expect.equals(-1.0, (-0.5).round()); | 294 Expect.equals(-1, (-0.5).round()); |
| 296 Expect.equals(true, (-0.0).round().isNegative); | 295 Expect.isTrue((-0.0).round() is int); |
| 297 Expect.equals(true, (-0.3).round().isNegative); | 296 Expect.isTrue((-0.3).round() is int); |
| 298 Expect.equals(true, (-0.5).round().isNegative); | 297 Expect.isTrue((-0.5).round() is int); |
| 299 Expect.equals(2.0, (1.5).round()); | 298 Expect.equals(2, (1.5).round()); |
| 300 Expect.equals(-2.0, (-1.5).round()); | 299 Expect.equals(-2, (-1.5).round()); |
| 301 Expect.equals(1.0, (0.99).round()); | 300 Expect.equals(1, (0.99).round()); |
| 302 Expect.equals(9007199254740991.0, (9007199254740991.0).round()); | 301 Expect.equals(9007199254740991, (9007199254740991.0).round()); |
| 303 Expect.equals(-9007199254740991.0, (-9007199254740991.0).round()); | 302 Expect.equals(-9007199254740991, (-9007199254740991.0).round()); |
| 304 | 303 |
| 305 // -- toInt --. | 304 // -- toInt --. |
| 306 // Smi. | 305 // Smi. |
| 307 Expect.equals(0, (0).toInt()); | 306 Expect.equals(0, (0).toInt()); |
| 308 Expect.equals(1, (1).toInt()); | 307 Expect.equals(1, (1).toInt()); |
| 309 Expect.equals(-1, (-1).toInt()); | 308 Expect.equals(-1, (-1).toInt()); |
| 310 // Type checks. | 309 // Type checks. |
| 311 { int i = (0).toInt(); } | 310 { int i = (0).toInt(); } |
| 312 { int i = (1).toInt(); } | 311 { int i = (1).toInt(); } |
| 313 { int i = (-1).toInt(); } | 312 { int i = (-1).toInt(); } |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 runOne(); | 439 runOne(); |
| 441 testSmiDivDeopt(); | 440 testSmiDivDeopt(); |
| 442 testSqrtDeopt(); | 441 testSqrtDeopt(); |
| 443 } | 442 } |
| 444 } | 443 } |
| 445 } | 444 } |
| 446 | 445 |
| 447 main() { | 446 main() { |
| 448 ArithmeticTest.testMain(); | 447 ArithmeticTest.testMain(); |
| 449 } | 448 } |
| OLD | NEW |