Skip to content

Commit

Permalink
Retourne une cote z à 0 lorsque l'écart type est nul.
Browse files Browse the repository at this point in the history
  • Loading branch information
francois2metz authored and etienneCharignon committed Dec 13, 2019
1 parent 4d3d755 commit ca33f70
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 4 deletions.
14 changes: 10 additions & 4 deletions app/models/partie.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,22 @@ def ecart_type_metriques

def cote_z_metriques
collect_metriques do |metrique|
unless metriques[metrique].nil?
(
(metriques[metrique] - moyenne_metriques[metrique]) / ecart_type_metriques[metrique]
).round(2)
if ecart_type_metriques[metrique].zero?
0
elsif metriques[metrique].present?
cote_z_metrique(metrique)
end
end
end

private

def cote_z_metrique(metrique)
(
(metriques[metrique] - moyenne_metriques[metrique]) / ecart_type_metriques[metrique]
).round(2)
end

def aggrege_metrique(fonction, metrique)
Partie
.where(situation: situation)
Expand Down
8 changes: 8 additions & 0 deletions spec/integrations/partie_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,14 @@
end
end

context "lorsque l'écart type est nul" do
it do
expect(partie1.cote_z_metriques).to eql('test_chaine' => nil,
'test_metrique' => 0,
'test_metrique_tableau' => nil)
end
end

it "lorsqu'il n'y a aucune partie enregistré" do
partie1.update(metriques: {})
expect(partie1.cote_z_metriques).to be_nil
Expand Down

0 comments on commit ca33f70

Please sign in to comment.