diff --git a/src/lib.rs b/src/lib.rs
index a5e9911..974d5ed 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -3,3 +3,4 @@ pub mod anybase;
 pub mod base4;
 pub mod core;
 pub mod bytes;
+mod tests;
diff --git a/src/tests.rs b/src/tests.rs
new file mode 100644
index 0000000..daebda3
--- /dev/null
+++ b/src/tests.rs
@@ -0,0 +1,30 @@
+#[test]
+fn test_anybase_base4() {
+    use crate::{anybase, base4};
+    let text = "i love cats".to_string();
+
+    let encoded = anybase::encode(text.clone(), 4, anybase::char_length(4));
+    assert_eq!(base4::encode(text), encoded);
+
+    let decoded = anybase::decode(encoded.clone(), 4, anybase::char_length(4));
+    assert_eq!(base4::decode(encoded), decoded);
+}
+
+#[test]
+fn test_anybase_encode() {
+    use crate::anybase;
+    let text = "i love cats".to_string();
+    let base = 10;
+    let char_length = anybase::char_length(base);
+
+    assert_eq!("meow mewo; mrrp mreow mrrp nyaaaa~ mreow mreow meow nyaaaa~; meow mrow meow mrrp mreow meow mrrp mewo", anybase::encode(text, base, char_length));
+}
+
+#[test]
+fn test_anybase_decode() {
+    use crate::anybase;
+    let text = "meow mewo; mrrp mreow mrrp nyaaaa~ mreow mreow meow nyaaaa~; meow mrow meow mrrp mreow meow mrrp mewo".to_string();
+    let base = 10;
+    let char_length = anybase::char_length(base);
+    assert_eq!("i love cats", anybase::decode(text, base, char_length));
+}