소스 검색

Test type conversion

Sam Jaffe 7 년 전
부모
커밋
845256bc9d
1개의 변경된 파일15개의 추가작업 그리고 0개의 파일을 삭제
  1. 15 0
      opaque_typedef_test.cpp

+ 15 - 0
opaque_typedef_test.cpp

@@ -41,3 +41,18 @@ TEST(OpaqueTypedefTest, Conversion) {
   EXPECT_THAT(radian(double(deg)), ::testing::Not(rad));
   EXPECT_THAT(degree(double(rad)), ::testing::Not(deg));
 }
+
+struct meters;
+struct seconds;
+struct meter_per_second;
+CREATE_OPAQUE_TYPEDEF(seconds, double, orderable);
+CREATE_OPAQUE_TYPEDEF(meter_per_second, double, orderable);
+template <typename T> using mix_multiplication = mixed_multiplication<meters, seconds, meter_per_second>;
+CREATE_OPAQUE_TYPEDEF(meters, double, orderable, mix_multiplication);
+
+TEST(OpaqueTypedefTest, MixedFunctions) {
+  meters m{10.0};
+  seconds s{0.5};
+  
+  EXPECT_THAT(m*s, meter_per_second{5.0});
+}