OLD | NEW |
1 // Copyright (c) 2014, the Dartino project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dartino 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.md file. | 3 // BSD-style license that can be found in the LICENSE.md file. |
4 | 4 |
5 #include <stdio.h> | 5 #include <stdio.h> |
6 #include <stdlib.h> | 6 #include <stdlib.h> |
7 | 7 |
8 #include "src/shared/assert.h" | 8 #include "src/shared/assert.h" |
9 #include "src/shared/flags.h" | 9 #include "src/shared/flags.h" |
10 #include "src/shared/test_case.h" | 10 #include "src/shared/test_case.h" |
11 | 11 |
12 #include "src/vm/object.h" | 12 #include "src/vm/object.h" |
13 #include "src/vm/program.h" | 13 #include "src/vm/program.h" |
14 | 14 |
15 namespace fletch { | 15 namespace dartino { |
16 | 16 |
17 static void CheckValidSmi(word value) { | 17 static void CheckValidSmi(word value) { |
18 EXPECT(Smi::IsValid(value)); | 18 EXPECT(Smi::IsValid(value)); |
19 EXPECT_EQ(Smi::FromWord(value)->value(), value); | 19 EXPECT_EQ(Smi::FromWord(value)->value(), value); |
20 } | 20 } |
21 | 21 |
22 static void CheckInvalidSmi(word value) { EXPECT(!Smi::IsValid(value)); } | 22 static void CheckInvalidSmi(word value) { EXPECT(!Smi::IsValid(value)); } |
23 | 23 |
24 TEST_CASE(Smi) { | 24 TEST_CASE(Smi) { |
25 CheckValidSmi(0); | 25 CheckValidSmi(0); |
26 CheckValidSmi(-1); | 26 CheckValidSmi(-1); |
27 CheckValidSmi(1); | 27 CheckValidSmi(1); |
28 CheckValidSmi(Smi::kMinValue); | 28 CheckValidSmi(Smi::kMinValue); |
29 CheckValidSmi(Smi::kMaxValue); | 29 CheckValidSmi(Smi::kMaxValue); |
30 CheckValidSmi(Smi::kMinPortableValue); | 30 CheckValidSmi(Smi::kMinPortableValue); |
31 CheckValidSmi(Smi::kMaxPortableValue); | 31 CheckValidSmi(Smi::kMaxPortableValue); |
32 | 32 |
33 CheckInvalidSmi(Smi::kMinValue - 1); | 33 CheckInvalidSmi(Smi::kMinValue - 1); |
34 CheckInvalidSmi(Smi::kMaxValue + 1); | 34 CheckInvalidSmi(Smi::kMaxValue + 1); |
35 | 35 |
36 EXPECT(Smi::kMinValue <= Smi::kMinPortableValue); | 36 EXPECT(Smi::kMinValue <= Smi::kMinPortableValue); |
37 EXPECT(Smi::kMaxValue >= Smi::kMaxPortableValue); | 37 EXPECT(Smi::kMaxValue >= Smi::kMaxPortableValue); |
38 } | 38 } |
39 | 39 |
40 } // namespace fletch | 40 } // namespace dartino |
OLD | NEW |