1
0
mirror of https://github.com/avitex/elixir-glicko synced 2024-11-24 20:19:57 +00:00
Commit Graph

25 Commits

Author SHA1 Message Date
Mikael Muszynski
c1089996d3 Convert Player (v1/v2) and Result to structs
In an effort to give names to core concepts in the library, replace the
current way of passing around tuples (of varying length and content)
with appropriately named structs.

In the interest of keeping the patch focused: primarily replace internal
implementation of the added struct modules, and keep the interfaces for
creation, conversion (player v1 to v2, and vice versa), and field access
as they currently are.
2024-06-10 13:04:45 +02:00
Mikael Muszynski
9cb997e2c1 Update algorithm to match the latest Glicko-2 documentation
On 2022-03-22, the Glicko-2 algorithm was updated, with the following
line being added to the [Glicko web page][1]:

> This document has been revised on March 22, 2022, to replace a "<"
> with "<=" in item 4(b) of Step 5 (page 3).

See the [Glicko-2 document][2] for details.

Tests for this change are missing, as at the time of writing I couldn't
figure out a test that only made use of the current public interface.

  [1]: http://glicko.net/glicko.html
  [2]: http://glicko.net/glicko/glicko2.pdf
2024-06-10 13:02:23 +02:00
Mikael Muszynski
28cea24d66
Fix inaccurate typespecs (#7)
1. `rating`, `rating_deviation`, and `rating_interval` all omit the
   possibility of receiving a `nil` as the second argument.
2. Writing out `Result.t()`  results in `dialyzer` looking for
   `Elixir.Result.t()`, instead of calling the local
   `Elixir.Glicko.Result.t()`.
2020-02-23 22:14:58 +00:00
Mikael Muszynski
db54b10e93 Change multi-line do: function definitions to do (#3)
Change the cases where a `do:` is followed by a `mix format` mandated
line break, or if the expression following the `do:` would span multiple
lines anyway.

The only exception to the rule above is the first change in the
changeset, as this was done for the function style of `initial_rating`
to be consistent with `initial_rating_deviation`.
2020-01-19 14:54:18 +00:00
Mikael Muszynski
e22c34f2ff Run mix format (#1)
Add formatter configuration and run `mix format`.

Additionally, manually replace leading tabs in documentation examples
with four spaces.
2020-01-19 13:58:40 +00:00
avitex
3d5a8e4f89 Add function to calculate draw probability 2017-11-29 14:00:18 +11:00
avitex
71e06435bf Add tests and example for win_probability 2017-11-29 13:10:02 +11:00
avitex
82bd9e54ba Add function to calculate win probability 2017-11-29 13:02:40 +11:00
avitex
0f013beaa3 Improve result docs 2017-11-29 12:53:31 +11:00
avitex
0ebfbe6447 Optimise calculations based on results 2017-11-29 12:49:39 +11:00
avitex
585621b20a Remove internal context 2017-11-29 12:10:37 +11:00
avitex
8cc3fd1acb Follow community conventions for typespecs 2017-11-22 18:20:04 +11:00
avitex
faf5218189 Use tuples exclusively to represent players and results 2017-11-17 11:08:25 +11:00
avitex
61175818ad Prepare for publish 2017-11-16 22:52:55 +11:00
avitex
b6dd4c2dee Support using tuples 2017-11-16 22:44:01 +11:00
avitex
168ec234dc More documentation, final preparation 2017-11-16 15:18:57 +11:00
avitex
50e3349e92 Tidy up 2017-11-16 14:47:05 +11:00
avitex
b8b5b27e2e Handle players that have not played during the rating period 2017-11-16 14:19:44 +11:00
avitex
218ac020fe Flattern opponent in result map 2017-11-16 13:43:03 +11:00
avitex
c80e397073 Improve opts and test 2017-11-16 13:37:56 +11:00
avitex
66133e48d1 Add e to results 2017-11-16 13:12:13 +11:00
avitex
7d46daf078 credo 2017-11-16 12:45:12 +11:00
avitex
c96d357812 Initial rating implementation 2017-11-16 12:39:07 +11:00
avitex
6bafa2be0b Add rating_interval 2017-11-15 23:32:47 +11:00
avitex
94e637f9bd Initial commit 2017-11-15 20:32:39 +11:00