// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. @TestOn('vm') library; import 'package:fixnum/fixnum.dart'; import 'package:test/test.dart'; void main() { group('conversions', () { test('toInt', () { expect(Int64.parseInt('-10000000000000000').toInt(), same(-10000000000000000)); expect(Int64.parseInt('-10000000000000001').toInt(), same(-10000000000000001)); expect(Int64.parseInt('-10000000000000002').toInt(), same(-10000000000000002)); expect(Int64.parseInt('-10000000000000003').toInt(), same(-10000000000000003)); expect(Int64.parseInt('-10000000000000004').toInt(), same(-10000000000000004)); expect(Int64.parseInt('-10000000000000005').toInt(), same(-10000000000000005)); expect(Int64.parseInt('-10000000000000006').toInt(), same(-10000000000000006)); expect(Int64.parseInt('-10000000000000007').toInt(), same(-10000000000000007)); expect(Int64.parseInt('-10000000000000008').toInt(), same(-10000000000000008)); }); }); test('', () { void check(int n) { // Sign change should commute with conversion. expect(-Int64(-n), Int64(n)); expect(Int64(-n), -Int64(n)); } check(10); check(1000000000000000000); check(9223372000000000000); // near Int64.MAX_VALUE, has exact double value check(9223372036854775807); // Int64.MAX_VALUE, rounds up to -MIN_VALUE check(-9223372036854775808); // Int64.MIN_VALUE }); }