pairinteraction
A Rydberg Interaction Calculator
KetAtomCreator.test.cpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2024 Pairinteraction Developers
2// SPDX-License-Identifier: LGPL-3.0-or-later
3
5
8
9#include <doctest/doctest.h>
10
11namespace pairinteraction {
12DOCTEST_TEST_CASE("create a ket for rubidium") {
14 auto ket = KetAtomCreator("Rb", 60, 1, 0.5, 0.5).create(database);
15 DOCTEST_CHECK(ket->get_species() == "Rb");
16 DOCTEST_CHECK(ket->get_quantum_number_n() == 60);
17 DOCTEST_CHECK(ket->get_quantum_number_l() == 1);
18 DOCTEST_CHECK(ket->get_quantum_number_f() == 0.5);
19 DOCTEST_CHECK(ket->get_quantum_number_j() == 0.5);
20 DOCTEST_CHECK(ket->get_quantum_number_m() == 0.5);
21 DOCTEST_CHECK(ket->get_quantum_number_s() == 0.5);
22 DOCTEST_CHECK(ket->get_parity() == Parity::ODD);
23 DOCTEST_MESSAGE("Ket: ", *ket);
24}
25
26DOCTEST_TEST_CASE("create a ket for strontium") {
28 auto ket = KetAtomCreator()
29 .set_species("Sr88_singlet")
35 .create(database);
36 DOCTEST_CHECK(ket->get_species() == "Sr88_singlet");
37 DOCTEST_CHECK(ket->get_quantum_number_n() == 60);
38 DOCTEST_CHECK(ket->get_quantum_number_f() == 1);
39 DOCTEST_CHECK(ket->get_quantum_number_m() == 0);
40 DOCTEST_CHECK(ket->get_parity() == Parity::ODD);
41 DOCTEST_MESSAGE("Ket: ", *ket);
42}
43
44DOCTEST_TEST_CASE("test for equality") {
46 auto ket1 = KetAtomCreator("Rb", 60, 1, 0.5, 0.5).create(database);
47 auto ket2 = KetAtomCreator("Rb", 60, 1, 0.5, 0.5).create(database);
48 auto ket3 = KetAtomCreator("Rb", 60, 1, 1.5, 0.5).create(database);
49 DOCTEST_CHECK(*ket1 == *ket2);
50 DOCTEST_CHECK(*ket1 != *ket3);
51}
52
53} // namespace pairinteraction
static Database & get_global_instance()
Definition: Database.cpp:1068
Builder class for creating KetAtom objects.
KetAtomCreator & set_quantum_number_f(double value)
KetAtomCreator & set_quantum_number_n(int value)
std::shared_ptr< const KetAtom > create(Database &database) const
KetAtomCreator & set_quantum_number_l(double value)
KetAtomCreator & set_quantum_number_s(double value)
KetAtomCreator & set_species(const std::string &value)
KetAtomCreator & set_quantum_number_m(double value)
DOCTEST_TEST_CASE("create a basis for strontium 88")