From c28c69bfe6e3c16b3e4fb95ef4f80c508e88adaa Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Fri, 17 Apr 2020 23:41:07 +0200
Subject: [PATCH] Add some tests

---
 lib/media_time/src/media_time.rs | 15 +++++++++++++++
 lib/media_time/src/tests.rs      | 23 +++++++++++++++++++++--
 2 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/lib/media_time/src/media_time.rs b/lib/media_time/src/media_time.rs
index e0c1cb0..0b99be0 100644
--- a/lib/media_time/src/media_time.rs
+++ b/lib/media_time/src/media_time.rs
@@ -46,6 +46,21 @@ impl MediaTime {
     pub fn seconds(&self) -> i64 {
         self.0.whole_seconds()
     }
+
+    #[inline(always)]
+    pub fn milliseconds(&self) -> i128 {
+        self.0.whole_milliseconds()
+    }
+
+    #[inline(always)]
+    pub fn microseconds(&self) -> i128 {
+        self.0.whole_microseconds()
+    }
+
+    #[inline(always)]
+    pub fn nanoseconds(&self) -> i128 {
+        self.0.whole_nanoseconds()
+    }
 }
 
 impl std::fmt::Display for MediaTime {
diff --git a/lib/media_time/src/tests.rs b/lib/media_time/src/tests.rs
index 2837a57..0aee5d7 100644
--- a/lib/media_time/src/tests.rs
+++ b/lib/media_time/src/tests.rs
@@ -1,4 +1,23 @@
+use crate::MediaTime;
+use fraction::Fraction;
+
 #[test]
-fn it_works() {
-    assert_eq!(2 + 2, 4);
+fn from_millis_works() {
+    assert_eq!(MediaTime::from_millis(0).seconds(), 0);
+    assert_eq!(MediaTime::from_millis(1357).seconds(), 1);
+    assert_eq!(MediaTime::from_millis(1357).milliseconds(), 1357);
+}
+
+#[test]
+fn from_seconds_works() {
+    assert_eq!(MediaTime::from_seconds(0).seconds(), 0);
+    assert_eq!(MediaTime::from_seconds(1357).seconds(), 1357);
+    assert_eq!(MediaTime::from_seconds(1357).milliseconds(), 1357000);
+}
+
+#[test]
+fn from_rational_works() {
+    assert_eq!(MediaTime::from_rational(0, &Fraction::new(1u64, 1u64)).unwrap().seconds(), 0);
+    assert_eq!(MediaTime::from_rational(1357, &Fraction::new(1u64, 1u64)).unwrap().seconds(), 1357);
+    assert_eq!(MediaTime::from_rational(30, &Fraction::new(1u64, 3u64)).unwrap().seconds(), 10);
 }
-- 
GitLab