1c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant//===----------------------------------------------------------------------===// 2c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant// 3c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant// The LLVM Compiler Infrastructure 4c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant// 5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details. 7c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant// 8c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant//===----------------------------------------------------------------------===// 9c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant 10c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant// test ratio: The static data members num and den shall have thcommon 11c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant// divisor of the absolute values of N and D: 12c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant 13c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant#include <ratio> 14c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant 15c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnanttemplate <long long N, long long D, long long eN, long long eD> 16c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnantvoid test() 17c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant{ 18c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant static_assert((std::ratio<N, D>::num == eN), ""); 19c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant static_assert((std::ratio<N, D>::den == eD), ""); 20c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant} 21c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant 22c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnantint main() 23c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant{ 24c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<1, 1, 1, 1>(); 25c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<1, 10, 1, 10>(); 26c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<10, 10, 1, 1>(); 27c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<10, 1, 10, 1>(); 28c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<12, 4, 3, 1>(); 29c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<12, -4, -3, 1>(); 30c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<-12, 4, -3, 1>(); 31c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<-12, -4, 3, 1>(); 32c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<4, 12, 1, 3>(); 33c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<4, -12, -1, 3>(); 34c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<-4, 12, -1, 3>(); 35c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<-4, -12, 1, 3>(); 36c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<222, 333, 2, 3>(); 37c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<222, -333, -2, 3>(); 38c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<-222, 333, -2, 3>(); 39c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<-222, -333, 2, 3>(); 40c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<0x7FFFFFFFFFFFFFFFLL, 127, 72624976668147841LL, 1>(); 41c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<-0x7FFFFFFFFFFFFFFFLL, 127, -72624976668147841LL, 1>(); 42c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<0x7FFFFFFFFFFFFFFFLL, -127, -72624976668147841LL, 1>(); 43c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant test<-0x7FFFFFFFFFFFFFFFLL, -127, 72624976668147841LL, 1>(); 44c52f43e72dfcea03037729649da84c23b3beb04aHoward Hinnant} 45