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