1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stan/math/fwd/scal/meta/ad_promotable.hpp>
#include <gtest/gtest.h>
#include <string>
TEST(MathMeta, primitive_to_fvar) {
EXPECT_TRUE(
(stan::math::ad_promotable<bool, stan::math::fvar<double>>::value));
EXPECT_TRUE(
(stan::math::ad_promotable<char, stan::math::fvar<double>>::value));
EXPECT_TRUE((stan::math::ad_promotable<unsigned char,
stan::math::fvar<double>>::value));
// NOLINTNEXTLINE(runtime/int)
EXPECT_TRUE(
(stan::math::ad_promotable<short, stan::math::fvar<double>>::value));
// NOLINTNEXTLINE(runtime/int)
EXPECT_TRUE((stan::math::ad_promotable<unsigned short,
stan::math::fvar<double>>::value));
EXPECT_TRUE(
(stan::math::ad_promotable<int, stan::math::fvar<double>>::value));
EXPECT_TRUE((stan::math::ad_promotable<unsigned int,
stan::math::fvar<double>>::value));
// NOLINTNEXTLINE(runtime/int)
EXPECT_TRUE(
(stan::math::ad_promotable<long, stan::math::fvar<double>>::value));
// NOLINTNEXTLINE(runtime/int)
EXPECT_TRUE((stan::math::ad_promotable<unsigned long,
stan::math::fvar<double>>::value));
// NOLINTNEXTLINE(runtime/int)
EXPECT_TRUE(
(stan::math::ad_promotable<long long, stan::math::fvar<double>>::value));
// NOLINTNEXTLINE(runtime/int)
EXPECT_TRUE((stan::math::ad_promotable<unsigned long long,
stan::math::fvar<double>>::value));
EXPECT_TRUE(
(stan::math::ad_promotable<float, stan::math::fvar<double>>::value));
EXPECT_TRUE(
(stan::math::ad_promotable<double, stan::math::fvar<double>>::value));
EXPECT_TRUE((
stan::math::ad_promotable<long double, stan::math::fvar<double>>::value));
}
TEST(MathMeta, nonprimitive_to_fvar) {
EXPECT_FALSE((
stan::math::ad_promotable<std::string, stan::math::fvar<double>>::value));
}