{"record":{"id":"b27ff66318f16919","repo":"TheAlgorithms/Python","slug":"relative-densities-cannot-be-greater-than-one","errorCode":null,"errorMessage":"Relative densities cannot be greater than one","messagePattern":"Relative densities cannot be greater than one","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"physics/hubble_parameter.py","lineNumber":77,"sourceCode":"    ...\n    ValueError: All input parameters must be positive\n\n    >>> hubble_parameter(hubble_constant=68.3, radiation_density=1e-4,\n    ... matter_density= 1.2, dark_energy=0.7, redshift=1)\n    Traceback (most recent call last):\n    ...\n    ValueError: Relative densities cannot be greater than one\n\n    >>> hubble_parameter(hubble_constant=68.3, radiation_density=1e-4,\n    ... matter_density= 0.3, dark_energy=0.7, redshift=0)\n    68.3\n    \"\"\"\n    parameters = [redshift, radiation_density, matter_density, dark_energy]\n    if any(p < 0 for p in parameters):\n        raise ValueError(\"All input parameters must be positive\")\n\n    if any(p > 1 for p in parameters[1:4]):\n        raise ValueError(\"Relative densities cannot be greater than one\")\n    else:\n        curvature = 1 - (matter_density + radiation_density + dark_energy)\n\n        e_2 = (\n            radiation_density * (redshift + 1) ** 4\n            + matter_density * (redshift + 1) ** 3\n            + curvature * (redshift + 1) ** 2\n            + dark_energy\n        )\n\n        hubble = hubble_constant * e_2 ** (1 / 2)\n        return hubble\n\n\nif __name__ == \"__main__\":\n    import doctest\n\n    # run doctest","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/TheAlgorithms/Python/blob/f5988cc09713315817df6a7e327e258013a94440/physics/hubble_parameter.py#L59-L95","documentation":"Raised by hubble_parameter() when radiation_density, matter_density, or dark_energy exceeds 1. These are relative (dimensionless) densities expressed as fractions of the critical density, so any value above 1 is rejected; their sum may still exceed or fall below 1, which the code interprets as curvature via curvature = 1 - sum.","triggerScenarios":"hubble_parameter(68.3, 1e-4, matter_density=1.2, dark_energy=0.7, redshift=1) — matter_density > 1 triggers it. The check applies only to parameters[1:4]; hubble_constant and redshift are not range-checked.","commonSituations":"Mixing up absolute densities with relative (Omega) densities; entering percentages (e.g. 70 instead of 0.7); datasets using Omega_m ~ 0.3 but Omega_L stored as 70.","solutions":["Convert densities to fractions of the critical density (divide by rho_crit) so each is in [0, 1].","If you passed percentages, divide by 100: dark_energy=70 -> 0.7.","Add a pre-call assertion all(0 <= p <= 1 for p in (radiation_density, matter_density, dark_energy))."],"exampleFix":"# before\nhubble_parameter(68.3, 1e-4, 1.2, 0.7, 1)  # ValueError\n\n# after\nhubble_parameter(68.3, 1e-4, 0.3, 0.7, 1)  # fractions of critical density","handlingStrategy":"validation","validationCode":"assert all(0.0 <= p <= 1.0 for p in (radiation_density, matter_density, dark_energy)), \\\n    'relative densities must be fractions of the critical density in [0, 1]'\nhubble_parameter(hubble_constant, radiation_density, matter_density, dark_energy, redshift)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Never pass percentages; divide by 100 first.","Use Omega-notation values (~0.3, ~0.7) from published cosmology tables directly.","Unit-test your parameter loader with the [0,1] constraint."],"tags":["physics","cosmology","range-check","valueerror"],"backgroundTag":null,"analyzedSha":"f5988cc09713315817df6a7e327e258013a94440","analyzedAt":"2026-08-14T17:30:07.041Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}