diff --git a/mvcm/spectral_tests.py b/mvcm/spectral_tests.py
index 4c2b32652f905c20e6358133f3d4b338669fb74c..1599327ac17b87eb4278d42e58ce1de309f51dec 100644
--- a/mvcm/spectral_tests.py
+++ b/mvcm/spectral_tests.py
@@ -111,20 +111,17 @@ class CloudTests(object):
 
         return cmin, kwargs['test_bit']
 
-    @run_if_test_exists_for_scene
+    @run_if_test_exists_for_scene('SST_Test')
     def sst_test(self,
                  band31: str,
                  band32: str,
                  cmin: np.ndarray,
-                 test_name: str = 'SST_Test') -> np.ndarray:
+                 **kwargs) -> np.ndarray:
 
-        confidence = np.ones(self.data[band31].shape)
-        qa_bit = np.zeros(self.data[band31].shape)
-        test_bit = np.zeros(self.data[band31].shape)
-        threshold = self.thresholds[self.scene_name][test_name]
+        threshold = kwargs['thresholds']
 
         if (threshold['perform'] is True and self.pixels_in_scene is True):
-            qa_bit[self.scene_idx] = 1
+            kwargs['qa_bit'][self.scene_idx] = 1
             m31 = self.data[band31].values - 273.16
             bt_diff = self.data[band31].values - self.data[band32].values
             sst = self.data.sst.values - 273.16
@@ -137,14 +134,14 @@ class CloudTests(object):
 
             idx = np.nonzero((sfcdif < threshold['thr'][1]) &
                              (self.data[self.scene_name] == 1))
-            test_bit[idx] = 1
+            kwargs['test_bit'][idx] = 1
             print(f'Testing "{self.scene_name}"\n')
-            confidence[self.scene_idx] = conf.conf_test_new(sfcdif[self.scene_idx], threshold['thr'])
+            kwargs['confidence'][self.scene_idx] = conf.conf_test_new(sfcdif[self.scene_idx], threshold['thr'])
 
-        cmin = np.fmin(cmin, confidence)
+        cmin = np.fmin(cmin, kwargs['confidence'])
 
         # return cmin, np.abs(1-test_bit)*qa_bit
-        return cmin, test_bit
+        return cmin, kwargs['test_bit']
 
     @run_if_test_exists_for_scene
     def bt_diff_86_11um(self,
diff --git a/tests/test_spectral_tests.py b/tests/test_spectral_tests.py
index b6ac684fb960ad3efa55386742f614532d2162eb..74b6cccda833b7cc120bf1ece3f5556845ac4b75 100644
--- a/tests/test_spectral_tests.py
+++ b/tests/test_spectral_tests.py
@@ -5,22 +5,31 @@ import numpy as np
 
 import pytest
 
+# from typing import Dict
+# from attrs import define, field, Factory
 import mvcm.spectral_tests as tst
 
 
+# CREATE PATHS
 @pytest.fixture
 def fixturepath():
     return os.path.join(os.path.dirname(__file__), 'fixtures')
 
 
+@pytest.fixture
+def data_path():
+    return '/ships19/hercules/pveglio/mvcm_cleanup'
+
+
+# SET FILENAME FIXTURES
 @pytest.fixture
 def thresholds_file(fixturepath):
     return os.path.join(fixturepath, 'thresholds.mvcm.snpp.v0.0.1.yaml')
 
 
 @pytest.fixture
-def data_path():
-    return '/ships19/hercules/pveglio/mvcm_cleanup'
+def ref_confidence_file(data_path):
+    return os.path.join(data_path, 'ref_confidence.nc')
 
 
 @pytest.fixture
@@ -28,17 +37,57 @@ def data_file(data_path):
     return os.path.join(data_path, 'viirs_data_A2022173.1312.nc')
 
 
-def test_11um_test(data_file, thresholds_file):
-    with open(thresholds_file, 'r') as f:
-        cfg_text = f.read()
-    thresholds = yaml.safe_load(cfg_text)
+# SET DATA FIXTURES
+@pytest.fixture
+def thresholds(thresholds_file):
+    return yaml.safe_load(open(thresholds_file))
+
+
+@pytest.fixture
+def data(data_file):
+    return xr.open_dataset(data_file)
+
+
+@pytest.fixture
+def ref_confidence(ref_confidence_file):
+    return xr.open_dataset(ref_confidence_file)
 
-    viirs_data = xr.open_dataset(data_file)
-    cmin = np.ones(viirs_data.latitude.shape)
+
+def test_11um_test(data, thresholds, ref_confidence):
+    cmin = np.ones(data.latitude.shape)
 
     for scene_name in ['Ocean_Day', 'Ocean_Night', 'Polar_Day_Ocean', 'Polar_Night_Ocean']:
-        SceneType = tst.CloudTests(data=viirs_data,
+        SceneType = tst.CloudTests(data=data,
                                    scene_name=scene_name,
                                    thresholds=thresholds)
 
         cmin, bit = SceneType.test_11um('M15', cmin)
+
+    assert np.allclose(cmin, ref_confidence.bt11um_confidence.values)
+
+
+def test_surface_temperature_test(data, thresholds, ref_confidence):
+    cmin = np.ones(data.latitude.shape)
+
+    for scene_name in ['Land_Night', 'Polar_Night_Land']:
+        SceneType = tst.CloudTests(data=data,
+                                   scene_name=scene_name,
+                                   thresholds=thresholds)
+
+        cmin, bit = SceneType.surface_temperature_test('M15', data, cmin)
+
+    assert np.allclose(cmin, ref_confidence.surface_temperature_confidence.values)
+
+
+def test_sst_test(data, thresholds, ref_confidence):
+    cmin = np.ones(data.latitude.shape)
+    for scene_name in ['Ocean_Day', 'Ocean_Night', 'Polar_Day_Ocean', 'Polar_Night_Ocean']:
+        SceneType = tst.CloudTests(data=data,
+                                   scene_name=scene_name,
+                                   thresholds=thresholds)
+
+        cmin, bit = SceneType.sst_test('M15', 'M16', cmin)
+
+    assert np.allclose(cmin, ref_confidence.sst_confidence.values)
+
+