LCOV - code coverage report
Current view: top level - src/ket - KetAtomCreator.test.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 38 38 100.0 %
Date: 2025-05-02 21:49:55 Functions: 3 3 100.0 %

          Line data    Source code
       1             : // SPDX-FileCopyrightText: 2024 Pairinteraction Developers
       2             : // SPDX-License-Identifier: LGPL-3.0-or-later
       3             : 
       4             : #include "pairinteraction/ket/KetAtomCreator.hpp"
       5             : 
       6             : #include "pairinteraction/database/Database.hpp"
       7             : #include "pairinteraction/ket/KetAtom.hpp"
       8             : 
       9             : #include <doctest/doctest.h>
      10             : 
      11             : namespace pairinteraction {
      12           1 : DOCTEST_TEST_CASE("create a ket for rubidium") {
      13           1 :     Database &database = Database::get_global_instance();
      14           1 :     auto ket = KetAtomCreator("Rb", 60, 1, 0.5, 0.5).create(database);
      15           1 :     DOCTEST_CHECK(ket->get_species() == "Rb");
      16           1 :     DOCTEST_CHECK(ket->get_quantum_number_n() == 60);
      17           1 :     DOCTEST_CHECK(ket->get_quantum_number_l() == 1);
      18           1 :     DOCTEST_CHECK(ket->get_quantum_number_f() == 0.5);
      19           1 :     DOCTEST_CHECK(ket->get_quantum_number_j() == 0.5);
      20           1 :     DOCTEST_CHECK(ket->get_quantum_number_m() == 0.5);
      21           1 :     DOCTEST_CHECK(ket->get_quantum_number_s() == 0.5);
      22           1 :     DOCTEST_CHECK(ket->get_parity() == Parity::ODD);
      23           1 :     DOCTEST_MESSAGE("Ket: ", *ket);
      24           1 : }
      25             : 
      26           1 : DOCTEST_TEST_CASE("create a ket for strontium") {
      27           1 :     Database &database = Database::get_global_instance();
      28           1 :     auto ket = KetAtomCreator()
      29           2 :                    .set_species("Sr88_singlet")
      30           1 :                    .set_quantum_number_n(60)
      31           1 :                    .set_quantum_number_l(1)
      32           1 :                    .set_quantum_number_f(1)
      33           1 :                    .set_quantum_number_m(0)
      34           1 :                    .set_quantum_number_s(0)
      35           1 :                    .create(database);
      36           1 :     DOCTEST_CHECK(ket->get_species() == "Sr88_singlet");
      37           1 :     DOCTEST_CHECK(ket->get_quantum_number_n() == 60);
      38           1 :     DOCTEST_CHECK(ket->get_quantum_number_f() == 1);
      39           1 :     DOCTEST_CHECK(ket->get_quantum_number_m() == 0);
      40           1 :     DOCTEST_CHECK(ket->get_parity() == Parity::ODD);
      41           1 :     DOCTEST_MESSAGE("Ket: ", *ket);
      42           1 : }
      43             : 
      44           1 : DOCTEST_TEST_CASE("test for equality") {
      45           1 :     Database &database = Database::get_global_instance();
      46           1 :     auto ket1 = KetAtomCreator("Rb", 60, 1, 0.5, 0.5).create(database);
      47           1 :     auto ket2 = KetAtomCreator("Rb", 60, 1, 0.5, 0.5).create(database);
      48           1 :     auto ket3 = KetAtomCreator("Rb", 60, 1, 1.5, 0.5).create(database);
      49           1 :     DOCTEST_CHECK(*ket1 == *ket2);
      50           1 :     DOCTEST_CHECK(*ket1 != *ket3);
      51           1 : }
      52             : 
      53             : } // namespace pairinteraction

Generated by: LCOV version 1.16