-
Notifications
You must be signed in to change notification settings - Fork 0
/
consts.py
78 lines (56 loc) · 2.54 KB
/
consts.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# Minimum number of problems that a user must do before they are even
# judged for proficiency
MIN_PROBLEMS_IMPOSED = 5
# Minimum accuracy (probabilty of getting next problem correct)
# required to be considered proficient
PROFICIENCY_ACCURACY_THRESHOLD = 0.94
# Max progress shown in progress bars
MAX_PROGRESS_SHOWN = 1.0
# Number of problems that reward a slowly degrading amount of energy
# points after proficiency has been reached before energy points
# bottom out for the exercise
DEGRADING_EXERCISES_AFTER_PROFICIENCY = 15
# Number of problems after which a practice exercise no longer rewards
# substantive points (all problems capped at EXERCISE_POINTS_BASE to
# avoid constantly just missing proficiency loophole abuse)
LIMIT_EXERCISES = 150
# Minimum number of energy points available for a correct problem
EXERCISE_POINTS_BASE = 5
# Minimum number of energy points available for a problem in an
# unfinished exercise
INCOMPLETE_EXERCISE_POINTS_BASE = 15
# Multiplier for energy points while working in topic mode
TOPIC_EXERCISE_MULTIPLIER = 3
# Multiplier for energy points in suggested exercise problems
SUGGESTED_EXERCISE_MULTIPLIER = 3
# Multiplier for energy points in non-proficient exercise problems
INCOMPLETE_EXERCISE_MULTIPLIER = 5
# Base energy points awarded for watching an entire video
VIDEO_POINTS_BASE = 750
# Percentage of video watched required to receive full video watching credit
REQUIRED_PERCENTAGE_FOR_FULL_VIDEO_POINTS = 0.9
# Maximum time we're willing to report that a user worked on a single
# problem, in seconds
MAX_WORKING_ON_PROBLEM_SECONDS = 600
# Required # of saved problems before we run statistics on a
# particular exercise
REQUIRED_PROBLEMS_FOR_EXERCISE_STATISTICS = 50
# Number of most recent problems we examine when calculating exercise
# statistics
LATEST_PROBLEMS_FOR_EXERCISE_STATISTICS = 5000
# Speediest exercise percentile to use when calculating "fast" problem times
FASTEST_EXERCISE_PERCENTILE = 0.25
# Minimum seconds we'd ever require for a "fast" problem
MIN_SECONDS_PER_FAST_PROBLEM = 2.0
# Maximum seconds we'd ever allow for a "fast" problem
MAX_SECONDS_PER_FAST_PROBLEM = 60.0
# Starting estimate for new exercises
INITIAL_SECONDS_PER_FAST_PROBLEM = 4.0
# Maximum number of days we're willing to postpone a review
MAX_REVIEW_INTERVAL_DAYS = 182
# Default number of days we're willing to postpone a review
DEFAULT_REVIEW_INTERVAL_DAYS = 7
# Minimum number of days we're willing to postpone a review
MIN_REVIEW_INTERVAL_DAYS = 1
# Maximum range of days we'll show on a profile graph
MAX_GRAPH_DAY_RANGE = 30