Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(995)

Unified Diff: runtime/vm/object_test.cc

Issue 14962008: Fix issue 5275: The VM must always generate the most compact form of an integer (Smi, Mint or Bigin… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/object_test.cc
===================================================================
--- runtime/vm/object_test.cc (revision 22813)
+++ runtime/vm/object_test.cc (working copy)
@@ -236,10 +236,10 @@
Smi& c = Smi::Handle(Smi::New(-1));
- Mint& mint1 = Mint::Handle(
- Mint::New(DART_2PART_UINT64_C(0x7FFFFFFF, 100)));
- Mint& mint2 = Mint::Handle(
- Mint::New(-DART_2PART_UINT64_C(0x7FFFFFFF, 100)));
+ Mint& mint1 = Mint::Handle();
+ mint1 ^= Integer::New(DART_2PART_UINT64_C(0x7FFFFFFF, 100));
+ Mint& mint2 = Mint::Handle();
+ mint2 ^= Integer::New(-DART_2PART_UINT64_C(0x7FFFFFFF, 100));
EXPECT_EQ(-1, a.CompareWith(mint1));
EXPECT_EQ(1, a.CompareWith(mint2));
EXPECT_EQ(-1, c.CompareWith(mint1));
@@ -307,7 +307,7 @@
{ Mint& med = Mint::Handle();
EXPECT(med.IsNull());
int64_t v = DART_2PART_UINT64_C(1, 0);
- med = Mint::New(v);
+ med ^= Integer::New(v);
EXPECT_EQ(v, med.value());
const String& smi_str = String::Handle(String::New("1"));
const String& mint1_str = String::Handle(String::New("2147419168"));
@@ -323,24 +323,28 @@
EXPECT(!i.IsZero());
EXPECT(i.IsNegative());
}
- Integer& i = Integer::Handle(Mint::New(DART_2PART_UINT64_C(1, 0)));
+ Integer& i = Integer::Handle(Integer::New(DART_2PART_UINT64_C(1, 0)));
EXPECT(i.IsMint());
EXPECT(!i.IsZero());
EXPECT(!i.IsNegative());
- Integer& i1 = Integer::Handle(Mint::New(DART_2PART_UINT64_C(1010, 0)));
- Mint& i2 = Mint::Handle(Mint::New(DART_2PART_UINT64_C(1010, 0)));
+ Integer& i1 = Integer::Handle(Integer::New(DART_2PART_UINT64_C(1010, 0)));
+ Mint& i2 = Mint::Handle();
+ i2 ^= Integer::New(DART_2PART_UINT64_C(1010, 0));
EXPECT(i1.Equals(i2));
EXPECT(!i.Equals(i1));
int64_t test = DART_2PART_UINT64_C(1010, 0);
EXPECT_EQ(test, i2.value());
- Mint& a = Mint::Handle(Mint::New(DART_2PART_UINT64_C(5, 0)));
- Mint& b = Mint::Handle(Mint::New(DART_2PART_UINT64_C(3, 0)));
+ Mint& a = Mint::Handle();
+ a ^= Integer::New(DART_2PART_UINT64_C(5, 0));
+ Mint& b = Mint::Handle();
+ b ^= Integer::New(DART_2PART_UINT64_C(3, 0));
EXPECT_EQ(1, a.CompareWith(b));
EXPECT_EQ(-1, b.CompareWith(a));
EXPECT_EQ(0, a.CompareWith(a));
- Mint& c = Mint::Handle(Mint::New(-DART_2PART_UINT64_C(3, 0)));
+ Mint& c = Mint::Handle();
+ c ^= Integer::New(-DART_2PART_UINT64_C(3, 0));
Smi& smi1 = Smi::Handle(Smi::New(4));
Smi& smi2 = Smi::Handle(Smi::New(-4));
EXPECT_EQ(1, a.CompareWith(smi1));
@@ -357,9 +361,12 @@
EXPECT_EQ(-1, c.CompareWith(big1));
EXPECT_EQ(1, c.CompareWith(big2));
- int64_t mint_value = DART_2PART_UINT64_C(0x7FFFFFFF, 100);
- Mint& mint1 = Mint::Handle(Mint::NewCanonical(mint_value));
- Mint& mint2 = Mint::Handle(Mint::NewCanonical(mint_value));
+ int64_t mint_value = DART_2PART_UINT64_C(0x7FFFFFFF, 64);
+ const String& mint_string = String::Handle(String::New("0x7FFFFFFF00000064"));
+ Mint& mint1 = Mint::Handle();
+ mint1 ^= Integer::NewCanonical(mint_string);
+ Mint& mint2 = Mint::Handle();
+ mint2 ^= Integer::NewCanonical(mint_string);
EXPECT_EQ(mint1.value(), mint_value);
EXPECT_EQ(mint2.value(), mint_value);
EXPECT_EQ(mint1.raw(), mint2.raw());
@@ -440,7 +447,7 @@
EXPECT(b.IsNull());
const char* cstr = "18446744073709551615000";
const String& test = String::Handle(String::New(cstr));
- b = Bigint::NewCanonical(test);
+ b ^= Integer::NewCanonical(test);
const char* str = b.ToCString();
EXPECT_STREQ(cstr, str);
« runtime/vm/object.h ('K') | « runtime/vm/object.cc ('k') | runtime/vm/snapshot_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698