From de1235505d18d163a57dc3033da38b8b08e474cb Mon Sep 17 00:00:00 2001
From: Justin Carpentier <justin.carpentier@inria.fr>
Date: Tue, 11 Jun 2024 09:45:05 +0200
Subject: [PATCH] test/decompositions: add test for FullPivHouseholderQR

---
 unittest/python/test_QR.py | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/unittest/python/test_QR.py b/unittest/python/test_QR.py
index b7a7f985..5d3b0b5a 100644
--- a/unittest/python/test_QR.py
+++ b/unittest/python/test_QR.py
@@ -20,3 +20,21 @@ assert householder_qr_eye.logAbsDeterminant() == 0.0
 
 Y = householder_qr_eye.solve(X)
 assert (X == Y).all()
+
+# Test FullPivHouseholderQR decomposition
+fullpiv_householder_qr = eigenpy.FullPivHouseholderQR()
+fullpiv_householder_qr = eigenpy.FullPivHouseholderQR(rows, cols)
+fullpiv_householder_qr = eigenpy.FullPivHouseholderQR(A)
+
+fullpiv_householder_qr = eigenpy.FullPivHouseholderQR(np.eye(rows, rows))
+X = rng.random((rows, 20))
+assert fullpiv_householder_qr.absDeterminant() == 1.0
+assert fullpiv_householder_qr.logAbsDeterminant() == 0.0
+
+Y = fullpiv_householder_qr.solve(X)
+assert (X == Y).all()
+assert fullpiv_householder_qr.rank() == rows
+
+fullpiv_householder_qr.setThreshold(1e-8)
+assert fullpiv_householder_qr.threshold() == 1e-8
+assert eigenpy.is_approx(np.eye(rows, rows), fullpiv_householder_qr.inverse())
-- 
GitLab