OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "float.h" | 8 #include "float.h" |
9 | 9 |
10 #include "SkColorPriv.h" | 10 #include "SkColorPriv.h" |
(...skipping 681 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
692 test_divmod<int16_t>(r); | 692 test_divmod<int16_t>(r); |
693 } | 693 } |
694 | 694 |
695 DEF_TEST(divmod_s32, r) { | 695 DEF_TEST(divmod_s32, r) { |
696 test_divmod<int32_t>(r); | 696 test_divmod<int32_t>(r); |
697 } | 697 } |
698 | 698 |
699 DEF_TEST(divmod_s64, r) { | 699 DEF_TEST(divmod_s64, r) { |
700 test_divmod<int64_t>(r); | 700 test_divmod<int64_t>(r); |
701 } | 701 } |
702 | |
703 DEF_TEST(PinToFixed, reporter) { | |
704 // double | |
705 REPORTER_ASSERT(reporter, 0 == SkDoublePinToFixed(0.0)); | |
706 REPORTER_ASSERT(reporter, 0x10000 == SkDoublePinToFixed(1.0)); | |
707 REPORTER_ASSERT(reporter, 0x7FFFFFFE == SkDoublePinToFixed(32767.999984741))
; | |
708 REPORTER_ASSERT(reporter, 0x7FFFFFFF == SkDoublePinToFixed(32767.999984742))
; | |
709 REPORTER_ASSERT(reporter, 0x7FFFFFFF == SkDoublePinToFixed(32767.999999999))
; | |
710 REPORTER_ASSERT(reporter, 0x7FFFFFFF == SkDoublePinToFixed(32768.0)); | |
711 REPORTER_ASSERT(reporter, 0x7FFFFFFF == SkDoublePinToFixed(5e10)); | |
712 REPORTER_ASSERT(reporter, 0x7FFFFFFF == SkDoublePinToFixed(DBL_MAX)); | |
713 REPORTER_ASSERT(reporter, -0x10000 == SkDoublePinToFixed(-1.0)); | |
714 // SK_FixedMin is defined to be -SK_FixedMax. | |
715 REPORTER_ASSERT(reporter, -0x7FFFFFFE == SkDoublePinToFixed(-32767.999984741
)); | |
716 REPORTER_ASSERT(reporter, -0x7FFFFFFF == SkDoublePinToFixed(-32767.999984742
)); | |
717 REPORTER_ASSERT(reporter, -0x7FFFFFFF == SkDoublePinToFixed(-32767.999999999
)); | |
718 REPORTER_ASSERT(reporter, -0x7FFFFFFF == SkDoublePinToFixed(-32768.0)); | |
719 REPORTER_ASSERT(reporter, -0x7FFFFFFF == SkDoublePinToFixed(-5e10)); | |
720 REPORTER_ASSERT(reporter, -0x7FFFFFFF == SkDoublePinToFixed(-DBL_MAX)); | |
721 | |
722 // float | |
723 REPORTER_ASSERT(reporter, 0 == SkFloatPinToFixed(0.0f)); | |
724 REPORTER_ASSERT(reporter, 0x10000 == SkFloatPinToFixed(1.0f)); | |
725 // SkFixed has more precision than float near SK_FixedMax, so SkFloatPinToFi
xed will never | |
726 // produce output between 0x7FFFFF80 and 0x7FFFFFFF. | |
727 REPORTER_ASSERT(reporter, 0x7FFFFF80 == SkFloatPinToFixed(32767.9990f)); | |
728 REPORTER_ASSERT(reporter, 0x7FFFFFFF == SkFloatPinToFixed(32767.9991f)); | |
729 REPORTER_ASSERT(reporter, 0x7FFFFFFF == SkFloatPinToFixed(32768.0f)); | |
730 REPORTER_ASSERT(reporter, 0x7FFFFFFF == SkFloatPinToFixed(5e10f)); | |
731 REPORTER_ASSERT(reporter, 0x7FFFFFFF == SkFloatPinToFixed(FLT_MAX)); | |
732 REPORTER_ASSERT(reporter, -0x10000 == SkFloatPinToFixed(-1.0f)); | |
733 // SK_FixedMin is defined to be -SK_FixedMax. | |
734 REPORTER_ASSERT(reporter, -0x7FFFFF80 == SkFloatPinToFixed(-32767.9990f)); | |
735 REPORTER_ASSERT(reporter, -0x7FFFFFFF == SkFloatPinToFixed(-32767.9991f)); | |
736 REPORTER_ASSERT(reporter, -0x7FFFFFFF == SkFloatPinToFixed(-32768.0f)); | |
737 REPORTER_ASSERT(reporter, -0x7FFFFFFF == SkFloatPinToFixed(-5e10f)); | |
738 REPORTER_ASSERT(reporter, -0x7FFFFFFF == SkFloatPinToFixed(-FLT_MAX)); | |
739 } | |
OLD | NEW |