From 5d31c298f46cfeca8c20d51c4ac3b5b339f8d655 Mon Sep 17 00:00:00 2001
From: nojhan <nojhan@nojhan.net>
Date: Fri, 7 Apr 2023 17:45:44 +0200
Subject: [PATCH] fix(score): set alpha to be zero by default

Comment out SSR and T logging (too large).
---
 app/frictionlesser.cpp   |  2 +-
 src/score.cpp            |  6 +++---
 tests/evals_t.cpp        |  4 ++--
 tests/frictionless_t.cpp | 20 ++++++++++----------
 4 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/app/frictionlesser.cpp b/app/frictionlesser.cpp
index 86fcfb7..cb9046c 100644
--- a/app/frictionlesser.cpp
+++ b/app/frictionlesser.cpp
@@ -75,7 +75,7 @@ int main(int argc, char* argv[])
     // const bool permute = argparser.createParam<bool>(false, "permute",
     //     "Randomly permute the data to get rid of the signal", 'R', "Data").value(); // TODO
 
-    const double alpha = argparser.createParam<double>(1, "alpha",
+    const double alpha = argparser.createParam<double>(0, "alpha",
         "Score adjustment exponent on the number of genes", 'a', "Parameters").value();
 
     // const double beta = argparser.createParam<double>(2, "beta",
diff --git a/src/score.cpp b/src/score.cpp
index dff2673..8a9ca13 100644
--- a/src/score.cpp
+++ b/src/score.cpp
@@ -19,7 +19,7 @@ FriedmanScore::FriedmanScore( const Transcriptome& rt, const double a) :
     ASSERT(_transcriptome.genes_nb() > 0);
     ASSERT(_transcriptome.samples_nb() > 0);
     ASSERT(_transcriptome.cells_nb(0) > 0);
-    ASSERT(alpha > 0);
+    ASSERT(alpha >= 0);
 
     const size_t samples_nb = _transcriptome.samples_nb();
 
@@ -105,10 +105,10 @@ void FriedmanScore::new_transcriptome(const bool print_progress)
         CLUTCHCODE(xdebug,
             std::ostringstream ssr;
             for(double s : SSR_j) { ssr << " " << s; }
-            CLUTCHLOGD(xdebug, "SSR={" << ssr.str() << "}", 2);
+            // CLUTCHLOGD(xdebug, "SSR={" << ssr.str() << "}", 2);
             std::ostringstream ts;
             for(double t : T_j  ) {  ts << " " << t; }
-            CLUTCHLOGD(xdebug, "T={" << ts.str() << "}", 2);
+            // CLUTCHLOGD(xdebug, "T={" << ts.str() << "}", 2);
         );
 
     } // for i in samples
diff --git a/tests/evals_t.cpp b/tests/evals_t.cpp
index 97ed87f..902abd9 100644
--- a/tests/evals_t.cpp
+++ b/tests/evals_t.cpp
@@ -17,9 +17,9 @@ SCENARIO( "Evaluators are consistent" ) {
         std::istringstream iss(ssv);
         frictionless::CommonRankParser parser(/*max_errors*/0);
         frictionless::Transcriptome rk = parser(iss);
-        frictionless::FriedmanScore ffrs(rk, /*alpha*/2);
+        frictionless::FriedmanScore ffrs(rk, /*alpha*/0);
         ffrs.new_transcriptome(false);
-        frictionless::FriedmanScore pfrs(rk, /*alpha*/2);
+        frictionless::FriedmanScore pfrs(rk, /*alpha*/0);
         pfrs.new_transcriptome(false);
         frictionless::EvalFull feval(ffrs);
         frictionless::EvalSwap peval(pfrs);
diff --git a/tests/frictionless_t.cpp b/tests/frictionless_t.cpp
index 34194f2..c1477e4 100644
--- a/tests/frictionless_t.cpp
+++ b/tests/frictionless_t.cpp
@@ -18,7 +18,7 @@ SCENARIO("Test pgamma ~ chi^2") {
             const double f = std::sqrt(-1 * R::pgamma(/*x*/5, /*alph*/(m-1)/2,
                                                       /*scale*/2, /*lower_tail*/0, /*log_p*/1));
             THEN("should be equal to manually computed p-value of chi^2") {
-                // Correct way to do floating point comparison in Catch2.
+                // Correct way to do floating point comparison in recent Catch2.
                 REQUIRE_THAT(f, Catch::Matchers::WithinAbs(0.4256199342, 1e-9));
             }
         }
@@ -257,7 +257,7 @@ SCENARIO( "Friedman cache" ) {
         frictionless::Transcriptome rk = parser(iss);
 
         WHEN( "Computing transcriptome cache" ) {
-            frictionless::FriedmanScore frs(rk, /*alpha*/2);
+            frictionless::FriedmanScore frs(rk, /*alpha*/0);
             frs.new_transcriptome(false);
 
             THEN( "Transcriptome cache for cells number is consistent" ) {
@@ -293,7 +293,7 @@ SCENARIO( "Friedman cache" ) {
             }
         }
         WHEN( "Computing a two-geneset cache" ) {
-            frictionless::FriedmanScore frs(rk, /*alpha*/2);
+            frictionless::FriedmanScore frs(rk, /*alpha*/0);
             frs.new_transcriptome(false);
             frs.new_signature_size(2);
 
@@ -305,7 +305,7 @@ SCENARIO( "Friedman cache" ) {
             }
         }
         WHEN( "Computing a three-geneset cache" ) {
-            frictionless::FriedmanScore frs(rk, /*alpha*/2);
+            frictionless::FriedmanScore frs(rk, /*alpha*/0);
             frs.new_transcriptome(false);
             frs.new_signature_size(3);
 
@@ -317,7 +317,7 @@ SCENARIO( "Friedman cache" ) {
             }
         }
         WHEN( "Computing two-geneset signature cache from scratch") {
-            frictionless::FriedmanScore frs(rk, /*alpha*/2);
+            frictionless::FriedmanScore frs(rk, /*alpha*/0);
             frs.new_transcriptome(false);
             frictionless::Signature geneset(4); // 4 genes.
             // Selects two geneset.
@@ -361,7 +361,7 @@ SCENARIO( "Friedman score" ) {
         std::istringstream iss(ssv);
         frictionless::CommonRankParser parser(/*max_errors*/0);
         frictionless::Transcriptome rk = parser(iss);
-        frictionless::FriedmanScore frs(rk, /*alpha*/2);
+        frictionless::FriedmanScore frs(rk, /*alpha*/0);
         frs.new_transcriptome(false);
 
         WHEN( "Considering a new signature" ) {
@@ -428,8 +428,8 @@ SCENARIO("Score cache save/reload is consistent on fake data and low-level API")
         std::istringstream iss(ssv.str());
         frictionless::CommonRankParser parser(/*max_errors*/0);
         frictionless::Transcriptome rk = parser(iss);
-        frictionless::FriedmanScore frs1(rk, /*alpha*/2);
-        frictionless::FriedmanScore frs2(rk, /*alpha*/2);
+        frictionless::FriedmanScore frs1(rk, /*alpha*/0);
+        frictionless::FriedmanScore frs2(rk, /*alpha*/0);
         frs1.new_transcriptome(false);
 
         WHEN("Saving and reload transcriptome cache") {
@@ -530,8 +530,8 @@ SCENARIO("Score cache save/reload is consistent on realistic data and high-level
         std::istringstream iss(ssv.str());
         frictionless::CommonRankParser parser(/*max_errors*/0);
         frictionless::Transcriptome rk = parser(iss);
-        frictionless::FriedmanScore frs1(rk, /*alpha*/2);
-        frictionless::FriedmanScore frs2(rk, /*alpha*/2);
+        frictionless::FriedmanScore frs1(rk, /*alpha*/0);
+        frictionless::FriedmanScore frs2(rk, /*alpha*/0);
         frs1.new_transcriptome(false);
 
         WHEN("Saving and reload transcriptome cache") {
-- 
GitLab