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