ratio_divide.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
1a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner//===----------------------------------------------------------------------===// 2a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner// 3a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner// The LLVM Compiler Infrastructure 4a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner// 5a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner// This file is distributed under the University of Illinois Open Source 6a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner// License. See LICENSE.TXT for details. 7a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner// 8a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner//===----------------------------------------------------------------------===// 9a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner 10a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner// test ratio_divide 11a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner 12a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner#include <ratio> 13a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner 14a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turnerint main() 15a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner{ 16a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner { 17a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<1, 1> R1; 18a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<1, 1> R2; 19a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio_divide<R1, R2>::type R; 20a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner static_assert(R::num == 1 && R::den == 1, ""); 21a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner } 22a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner { 23a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<1, 2> R1; 24a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<1, 1> R2; 25a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio_divide<R1, R2>::type R; 26a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner static_assert(R::num == 1 && R::den == 2, ""); 27a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner } 28a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner { 29a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<-1, 2> R1; 30a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<1, 1> R2; 31a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio_divide<R1, R2>::type R; 32a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner static_assert(R::num == -1 && R::den == 2, ""); 33a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner } 34a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner { 35a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<1, -2> R1; 36a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<1, 1> R2; 37a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio_divide<R1, R2>::type R; 38a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner static_assert(R::num == -1 && R::den == 2, ""); 39a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner } 40a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner { 41a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<1, 2> R1; 42a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<-1, 1> R2; 43a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio_divide<R1, R2>::type R; 44a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner static_assert(R::num == -1 && R::den == 2, ""); 45a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner } 46a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner { 47a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<1, 2> R1; 48a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<1, -1> R2; 49a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio_divide<R1, R2>::type R; 50a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner static_assert(R::num == -1 && R::den == 2, ""); 51a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner } 52a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner { 53a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<56987354, 467584654> R1; 54a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio<544668, 22145> R2; 55a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner typedef std::ratio_divide<R1, R2>::type R; 56a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner static_assert(R::num == 630992477165LL && R::den == 127339199162436LL, ""); 57a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner } 58a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner} 59a2394cf2fab37ca4ec91e57db74f06f15a3656beDavid 'Digit' Turner