Switch to side-by-side view

--- a
+++ b/tests/deseq2/test_linear_mu.py
@@ -0,0 +1,39 @@
+import unittest
+
+import numpy as np
+
+from inmoose.deseq2 import (
+    DESeqDataSet,
+    estimateDispersionsFit,
+    estimateDispersionsGeneEst,
+    estimateDispersionsMAP,
+    makeExampleDESeqDataSet,
+    nbinomWaldTest,
+)
+
+
+class Test(unittest.TestCase):
+    def test_linear_mu(self):
+        """test that the use of linear model for fitting mu works as expected"""
+
+        dds = makeExampleDESeqDataSet(
+            n=100,
+            m=4,
+            interceptMean=10,
+            interceptSD=3,
+            dispMeanRel=lambda x: 0.5,
+            sizeFactors=[0.5, 1, 1, 2],
+        )
+        dds = dds.estimateSizeFactors()
+        dds1 = DESeqDataSet(dds.copy())
+        dds1 = estimateDispersionsGeneEst(dds1, linearMu=False)
+        dds2 = estimateDispersionsGeneEst(dds.copy(), linearMu=True)
+        mu1 = dds1.layers["mu"]
+        mu2 = dds2.layers["mu"]
+        cors = np.diag(np.corrcoef(mu1, mu2)[: mu1.shape[0], mu1.shape[1] :])
+        self.assertTrue(np.all(cors > 1 - 1e-6))
+
+        dds2 = estimateDispersionsFit(dds2, fitType="mean")
+        dds2 = estimateDispersionsMAP(dds2)
+        dds2 = nbinomWaldTest(dds2)
+        dds2.results()