diff --git a/test/gtest_observations.cpp b/test/gtest_observations.cpp
index fc24115a0c7198f24b9b19718d219a9928ef78db..fe10475eb943bd0c76e9e7e14092cd82d95a5135 100644
--- a/test/gtest_observations.cpp
+++ b/test/gtest_observations.cpp
@@ -38,11 +38,11 @@ TEST(ObservationsTest, AddClearObservation)
   }
 
   ASSERT_TRUE(obs.n == observations.getObservations().size());
+  ASSERT_TRUE(obs.n == observations.size());
 
-  //Testing clear
+  // Testing clear
   observations.clearObservations();
   ASSERT_TRUE(0 == observations.getObservations().size());
-
 }
 
 TEST(ObservationsTest, LoadFromRinex)
@@ -67,6 +67,79 @@ TEST(ObservationsTest, LoadFromRinex)
   free(obs.data);
 }
 
+TEST(ObservationsTest, GetObservationBySat)
+{
+  loadRinex();
+
+  Observations observations;
+  observations.loadFromRinex(rnx_file.c_str(), t_start, t_end, dt, opt);
+
+  for (int ii = 0; ii < obs.n; ++ii)
+  {
+    ASSERT_TRUE(equalObservations(obs.data[ii], observations.getObservationBySat(obs.data[ii].sat)));
+  }
+}
+
+TEST(ObservationsTest, GetObservationByIdx)
+{
+  loadRinex();
+
+  Observations observations;
+  observations.loadFromRinex(rnx_file.c_str(), t_start, t_end, dt, opt);
+
+  for (int ii = 0; ii < obs.n; ++ii)
+  {
+    // We do this check like this because both loading functions load the rinex file and then sort the observations
+    ASSERT_TRUE(equalObservations(obs.data[ii], observations.getObservationByIdx(ii)));
+  }
+}
+
+TEST(ObservationsTest, data)
+{
+  loadRinex();
+
+  Observations observations;
+  observations.loadFromRinex(rnx_file.c_str(), t_start, t_end, dt, opt);
+
+  for (int ii = 0; ii < obs.n; ++ii)
+  {
+    // We do this check like this because both loading functions load the rinex file and then sort the observations
+    ASSERT_TRUE(equalObservations(obs.data[ii], observations.data()[ii]));
+  }
+}
+
+TEST(ObservationsTest, HasSatellite)
+{
+  loadRinex();
+
+  Observations observations;
+  observations.loadFromRinex(rnx_file.c_str(), t_start, t_end, dt, opt);
+
+  for (int ii = 0; ii < obs.n; ++ii)
+  {
+    ASSERT_TRUE(observations.hasSatellite(obs.data[ii].sat));
+  }
+}
+
+TEST(ObservationsTest, FindCommonObservations)
+{
+  loadRinex();
+
+  Observations observations1;
+  observations1.loadFromRinex(rnx_file.c_str(), t_start, t_end, dt, opt);
+  Observations observations2(observations1);
+
+  Observations common1;
+  Observations common2;
+
+  Observations::findCommonObservations(observations1, observations2, common1, common2);
+
+  for (auto obs = common1.getObservations().begin(); obs != common1.getObservations().end(); ++obs)
+  {
+    ASSERT_TRUE(equalObservations(common1.getObservationBySat(obs->sat), common2.getObservationBySat(obs->sat)));
+  }
+}
+
 int main(int argc, char** argv)
 {
   testing::InitGoogleTest(&argc, argv);