Last active
November 2, 2016 14:45
-
-
Save lieuwex/14ce1da07030461a8159 to your computer and use it in GitHub Desktop.
Revisions
-
lieuwex revised this gist
Nov 2, 2016 . 1 changed file with 3 additions and 1 deletion.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -27,7 +27,9 @@ handle-err e if e? e, r <-! @current-course handle-err e if e? e, r <-! r.grades do fillPersons: no fillGrade: yes handle-err e if e? r -
lieuwex revised this gist
Jul 5, 2016 . 1 changed file with 1 addition and 2 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -1,7 +1,6 @@ { Magister } = require 'magister.js' require! 'kbd' { group-by, obj-to-pairs, each, map, reject, is-it-NaN } = require 'prelude-ls' WANTED = 5.5 -
lieuwex revised this gist
Jun 5, 2016 . 1 changed file with 6 additions and 6 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -6,16 +6,16 @@ Magister = m.Magister WANTED = 5.5 ask = (str) -> process.stdout.write "#str: " kbd.get-line-sync! handle-err = (e) !-> console.log "error: #e" process.exit 1 numberize = (s) -> parse-float s.replace(',', '.'), 10 [schoolname, username, password] = ['Schoolname', 'Username', 'Password'] |> map ask magister = new Magister do schoolname @@ -36,12 +36,12 @@ r |> obj-to-pairs |> each ([name, grades]) !-> console.log "#name:" input = ask 'Weight of next grade' if input.length is 0 return weight = input |> numberize old-grade-weight-sum = 0 old-weight-sum = 0 @@ -50,7 +50,7 @@ r |> reject (g) -> g.type!type! is 2 |> map (g) -> grade: ( if g.grade!? then g.grade! |> numberize else NaN ) weight: g.weight! -
lieuwex revised this gist
Jun 25, 2015 . 1 changed file with 3 additions and 1 deletion.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -65,8 +65,10 @@ r Math.round(10 * needed) / 10 cur-avg = old-grade-weight-sum / old-weight-sum cur-rounded-avg = Math.floor(cur-avg + 0.5) - 0.5 next-avg = Math.ceil(cur-avg - 0.4) + 0.5 console.log "Needed grade for #cur-rounded-avg (stay same): #{calculate-grade cur-rounded-avg}" console.log "Needed grade for #WANTED: #{calculate-grade WANTED}" console.log "Needed grade for #next-avg (go one up): #{calculate-grade next-avg}" console.log "---" -
lieuwex revised this gist
Jun 25, 2015 . 1 changed file with 3 additions and 3 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -1,7 +1,7 @@ m = require 'magister.js' require! 'kbd' { group-by, obj-to-pairs, each, map, reject, is-it-NaN } = require 'prelude-ls' Magister = m.Magister WANTED = 5.5 @@ -67,6 +67,6 @@ r cur-avg = old-grade-weight-sum / old-weight-sum next-avg = Math.ceil(cur-avg - 0.4) + 0.5 console.log "Needed grade for #WANTED: #{calculate-grade WANTED}" console.log "Needed grade for #next-avg: #{calculate-grade next-avg}" console.log "---" -
lieuwex revised this gist
Jun 25, 2015 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -50,12 +50,12 @@ r |> reject (g) -> g.type!type! is 2 |> map (g) -> grade: ( if g.grade!? then g.grade! |> (.replace ',', '.') |> Number else NaN ) weight: g.weight! |> reject (g) -> is-it-NaN g.grade |> each (g) !-> old-grade-weight-sum += g.weight * g.grade old-weight-sum += g.weight -
lieuwex revised this gist
Jun 25, 2015 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -47,6 +47,7 @@ r old-weight-sum = 0 grades |> reject (g) -> g.type!type! is 2 |> map (g) -> grade: ( if g.grade? then g.grade! |> (.replace ',', '.') |> Number -
lieuwex revised this gist
Jun 25, 2015 . 1 changed file with 19 additions and 10 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -4,20 +4,23 @@ require! 'kbd' { group-by, obj-to-pairs, each, map, reject, is-it-NaN } = require 'prelude-ls' WANTED = 5.5 ask = (str) -> process.stdout.write str kbd.get-line-sync! handle-err = (e) !-> console.log "error: #e" process.exit 1 numberize = (s) -> s.replace ',', '.' |> Number [schoolname, username, password] = ['Schoolname', 'Username', 'Password'] |> map (s) -> ask "#s: " magister = new Magister do schoolname username password e <-! magister.ready handle-err e if e? @@ -33,8 +36,7 @@ r |> obj-to-pairs |> each ([name, grades]) !-> console.log "#name:" input = ask 'Weight of next grade: ' if input.length is 0 return @@ -56,7 +58,14 @@ r old-grade-weight-sum += g.weight * g.grade old-weight-sum += g.weight calculate-grade = (wanted) -> wanted = 10 if wanted > 10 needed = (wanted * (old-weight-sum + weight) - old-grade-weight-sum) / weight Math.round(10 * needed) / 10 cur-avg = old-grade-weight-sum / old-weight-sum next-avg = Math.ceil(cur-avg - 0.4) + 0.5 console.log "Needed grade for 5.5: #{calculate-grade WANTED}" console.log "Needed grade for #{next-avg}: #{calculate-grade next-avg}" console.log "---" -
lieuwex revised this gist
Jun 25, 2015 . 1 changed file with 4 additions and 1 deletion.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -46,7 +46,10 @@ r grades |> map (g) -> grade: ( if g.grade? then g.grade! |> (.replace ',', '.') |> Number else NaN ) weight: g.weight! |> reject (g) -> is-it-NaN g.grade |> each (g) -> -
lieuwex created this gist
Jun 25, 2015 .There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,59 @@ m = require 'magister.js' Magister = m.Magister require! 'kbd' { group-by, obj-to-pairs, each, map, reject, is-it-NaN } = require 'prelude-ls' WANTED = 5.5 SCHOOLNAME = '' USERNAME = '' PASSWORD = '' handle-err = (e) !-> console.log "error: #e" process.exit 1 numberize = (s) -> s.replace ',', '.' |> Number magister = new Magister do SCHOOLNAME USERNAME PASSWORD e <-! magister.ready handle-err e if e? e, r <-! @current-course handle-err e if e? e, r <-! r.grades no, yes handle-err e if e? r |> group-by (.class!abbreviation) |> obj-to-pairs |> each ([name, grades]) !-> console.log "#name:" console.log "weight of next grade" input = kbd.getLineSync! if input.length is 0 return weight = input |> (.replace ',', '.') |> Number old-grade-weight-sum = 0 old-weight-sum = 0 grades |> map (g) -> grade: g.grade! |> (.replace ',', '.') |> Number weight: g.weight! |> reject (g) -> is-it-NaN g.grade |> each (g) -> old-grade-weight-sum += g.weight * g.grade old-weight-sum += g.weight needed = (WANTED * (old-weight-sum + weight) - old-grade-weight-sum) / weight console.log "needed grade: #needed" console.log "---"