Skip to content

Commit

Permalink
input-conversion to Fraction and new rendering in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
grayson-helmholz committed Nov 18, 2024
1 parent 36729d0 commit 315bda6
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 16 deletions.
9 changes: 7 additions & 2 deletions tests/unit/conservation_rules/test_c_parity.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from fractions import Fraction
from itertools import product

import pytest
Expand Down Expand Up @@ -55,7 +56,9 @@ def test_c_parity_all_defined(rule_input, expected):
CParityEdgeInput(spin_magnitude=0, pid=100),
CParityEdgeInput(spin_magnitude=0, pid=-100),
],
CParityNodeInput(l_magnitude=l_magnitude, s_magnitude=0),
CParityNodeInput(
l_magnitude=Fraction(l_magnitude), s_magnitude=Fraction(0)
),
),
(-1) ** l_magnitude == c_parity,
)
Expand All @@ -80,7 +83,9 @@ def test_c_parity_multiparticle_boson(rule_input, expected):
CParityEdgeInput(spin_magnitude=0.5, pid=100),
CParityEdgeInput(spin_magnitude=0.5, pid=-100),
],
CParityNodeInput(l_magnitude=l_magnitude, s_magnitude=s_magnitude),
CParityNodeInput(
l_magnitude=Fraction(l_magnitude), s_magnitude=Fraction(s_magnitude)
),
),
(s_magnitude + l_magnitude) % 2 == abs(c_parity - 1) / 2,
)
Expand Down
8 changes: 5 additions & 3 deletions tests/unit/conservation_rules/test_clebsch_gordan.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from fractions import Fraction

import pytest

from qrules.conservation_rules import (
Expand Down Expand Up @@ -213,10 +215,10 @@ def test_isospin_clebsch_gordan_zeros(
) -> None:
assert (
isospin_conservation(
[IsoSpinEdgeInput(coupled_isospin_mag, 0)],
[IsoSpinEdgeInput(Fraction(coupled_isospin_mag), Fraction(0))],
[
IsoSpinEdgeInput(isospin_mag1, 0),
IsoSpinEdgeInput(isospin_mag2, 0),
IsoSpinEdgeInput(Fraction(isospin_mag1), Fraction(0)),
IsoSpinEdgeInput(Fraction(isospin_mag2), Fraction(0)),
],
)
is expected
Expand Down
7 changes: 5 additions & 2 deletions tests/unit/conservation_rules/test_g_parity.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from fractions import Fraction
from itertools import product

import pytest
Expand Down Expand Up @@ -37,7 +38,7 @@
g_parity=Parity(g_parity_out[0][1]),
),
],
GParityNodeInput(l_magnitude=0, s_magnitude=0),
GParityNodeInput(l_magnitude=Fraction(0), s_magnitude=Fraction(0)),
),
g_parity_in[1] is g_parity_out[1],
)
Expand Down Expand Up @@ -84,7 +85,9 @@ def test_g_parity_all_defined(rule_input, expected):
pid=-100,
),
],
GParityNodeInput(l_magnitude=l_magnitude, s_magnitude=0),
GParityNodeInput(
l_magnitude=Fraction(l_magnitude), s_magnitude=Fraction(0)
),
),
(-1) ** (l_magnitude + isospin) == g_parity,
)
Expand Down
7 changes: 5 additions & 2 deletions tests/unit/conservation_rules/test_gellmann_nishijima.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from fractions import Fraction
from itertools import product

import pytest
Expand All @@ -16,7 +17,9 @@
),
charge == isospin_z + 0.5,
)
for charge, isospin_z in product(range(-1, 1), [-1, 0.5, 0, 0.5, 1])
for charge, isospin_z in product(
range(-1, 1), list(map(Fraction, [-1, 0.5, 0, 0.5, 1]))
)
]
+ [
(
Expand All @@ -29,7 +32,7 @@
charge == isospin_z + 0.5 * (1 + strangeness),
)
for charge, isospin_z, strangeness in product(
range(-1, 1), [-1, 0.5, 0, 0.5, 1], [-1, 0, 1]
range(-1, 1), list(map(Fraction, [-1, 0.5, 0, 0.5, 1])), [-1, 0, 1]
)
],
)
Expand Down
3 changes: 2 additions & 1 deletion tests/unit/conservation_rules/test_parity_conservation.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from fractions import Fraction
from itertools import product

import pytest
Expand All @@ -21,7 +22,7 @@
Parity(parity_out1),
Parity(1),
],
NodeQuantumNumbers.l_magnitude(l_magnitude),
NodeQuantumNumbers.l_magnitude(Fraction(l_magnitude)),
parity_in == parity_out1 * (-1) ** (l_magnitude),
)
for parity_in, parity_out1, l_magnitude in product([-1, 1], [-1, 1], range(5))
Expand Down
5 changes: 3 additions & 2 deletions tests/unit/test_quantum_numbers.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import typing
from copy import deepcopy
from fractions import Fraction

import pytest

from qrules.particle import _float_as_signed_fraction_str
from qrules.io._dot import _render_fraction
from qrules.quantum_numbers import Parity


Expand Down Expand Up @@ -69,4 +70,4 @@ def test_exceptions(self):
],
)
def test_to_fraction(value, render_plus: bool, expected: str):
assert _float_as_signed_fraction_str(value, render_plus) == expected
assert _render_fraction(Fraction(value), render_plus) == expected
11 changes: 7 additions & 4 deletions tests/unit/test_system_control.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from __future__ import annotations

from copy import deepcopy
from fractions import Fraction
from importlib.metadata import version

import attrs
Expand Down Expand Up @@ -226,7 +227,9 @@ def test_create_edge_properties(
assert skh_particle_version is not None # dummy for skip tests


def make_ls_test_graph(angular_momentum_magnitude, coupled_spin_magnitude, particle):
def make_ls_test_graph(
angular_momentum_magnitude, coupled_spin_magnitude, particle: Particle
):
topology = Topology(
nodes={0},
edges={-1: Edge(None, 0)},
Expand All @@ -237,12 +240,12 @@ def make_ls_test_graph(angular_momentum_magnitude, coupled_spin_magnitude, parti
l_magnitude=angular_momentum_magnitude,
)
}
states: dict[int, ParticleWithSpin] = {-1: (particle, 0)}
states: dict[int, ParticleWithSpin] = {-1: (particle, Fraction(0))}
return MutableTransition(topology, states, interactions) # type: ignore[arg-type,var-annotated]


def make_ls_test_graph_scrambled(
angular_momentum_magnitude, coupled_spin_magnitude, particle
angular_momentum_magnitude, coupled_spin_magnitude, particle: Particle
):
topology = Topology(
nodes={0},
Expand All @@ -254,7 +257,7 @@ def make_ls_test_graph_scrambled(
s_magnitude=coupled_spin_magnitude,
)
}
states: dict[int, ParticleWithSpin] = {-1: (particle, 0)}
states: dict[int, ParticleWithSpin] = {-1: (particle, Fraction(0))}
return MutableTransition(topology, states, interactions) # type: ignore[arg-type,var-annotated]


Expand Down

0 comments on commit 315bda6

Please sign in to comment.