Support Fraction probabilities and fix chart rendering for non-float values#15
Merged
Conversation
…values Widen Weight to int | float | Fraction so dice accept exact rational probability weights, propagate the type through exp/var/p and the internal probability containers, and add a _plot_value boundary cast so prob_chart/cdf_chart render Fraction/Decimal outcomes (string Vase keys untouched). ordered now seeds its accumulators with ints so exact Fraction results are preserved. Adds a notebook example and tests. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Widens
Weighttoint | float | Fractionso dice accept exact rational probability weights, and propagates the type throughexp/var/pand the internal probability containers (passing basedpyright). A new_plot_valueboundary cast letsprob_chart/cdf_chartrenderFraction/Decimaloutcomes that previously crashed with "not JSON serializable", while leavingVasestring keys untouched.orderednow seeds its accumulators with ints instead of floats so exactFractionresults are preserved (identical math for the float path). Adds a notebook example demonstrating exact probabilities plus tests covering exact arithmetic, Fraction outcomes,orderedexactness, and chart rendering.🤖 Generated with Claude Code