Divide e1 by e2.
(e1: dict[str, float], e2: dict[str, float])
| 113 | |
| 114 | |
| 115 | def div(e1: dict[str, float], e2: dict[str, float]) -> float: |
| 116 | """Divide e1 by e2.""" |
| 117 | e1 = strip(e1) |
| 118 | e2 = strip(e2) |
| 119 | if set(e1.keys()) != set(e2.keys()): |
| 120 | return None |
| 121 | |
| 122 | n, d = None, None |
| 123 | |
| 124 | for v, c1 in e1.items(): |
| 125 | c2 = e2[v] # we want c1/c2 = n/d => c1*d=c2*n |
| 126 | if n is not None and c1 * d != c2 * n: |
| 127 | return None |
| 128 | n, d = c1, c2 |
| 129 | return frac(n) / frac(d) |
| 130 | |
| 131 | |
| 132 | def recon(e: dict[str, float], const: str) -> tuple[str, dict[str, float]]: |
no test coverage detected