practica6germanAT 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.coveralls.yml +2 -0
- data/.gitignore +10 -0
- data/.rspec +3 -0
- data/.travis.yml +9 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +95 -0
- data/Guardfile +85 -0
- data/README.md +19 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/doc/Comida.html +1030 -0
- data/doc/List.html +1346 -0
- data/doc/List/Node.html +409 -0
- data/doc/MejorPlato.html +1007 -0
- data/doc/Menu.html +400 -0
- data/doc/Plato.html +1125 -0
- data/doc/Practica6.html +144 -0
- data/doc/Practica6/Error.html +124 -0
- data/doc/_index.html +186 -0
- data/doc/class_list.html +51 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +58 -0
- data/doc/css/style.css +496 -0
- data/doc/file.README.html +97 -0
- data/doc/file_list.html +56 -0
- data/doc/frames.html +17 -0
- data/doc/index.html +97 -0
- data/doc/js/app.js +303 -0
- data/doc/js/full_list.js +216 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +443 -0
- data/doc/top-level-namespace.html +112 -0
- data/lib/practica6.rb +14 -0
- data/lib/practica6/comida.rb +59 -0
- data/lib/practica6/lista.rb +173 -0
- data/lib/practica6/mejorplatos.rb +122 -0
- data/lib/practica6/menu.rb +48 -0
- data/lib/practica6/platos.rb +136 -0
- data/lib/practica6/version.rb +7 -0
- data/practica6.gemspec +36 -0
- metadata +167 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>
|
|
7
|
+
Top Level Namespace
|
|
8
|
+
|
|
9
|
+
— Documentation by YARD 0.9.20
|
|
10
|
+
|
|
11
|
+
</title>
|
|
12
|
+
|
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
|
|
14
|
+
|
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
|
|
16
|
+
|
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
|
18
|
+
pathId = "";
|
|
19
|
+
relpath = '';
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
|
24
|
+
|
|
25
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div class="nav_wrap">
|
|
31
|
+
<iframe id="nav" src="class_list.html?1"></iframe>
|
|
32
|
+
<div id="resizer"></div>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<div id="main" tabindex="-1">
|
|
36
|
+
<div id="header">
|
|
37
|
+
<div id="menu">
|
|
38
|
+
|
|
39
|
+
<a href="_index.html">Index</a> »
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
<span class="title">Top Level Namespace</span>
|
|
43
|
+
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
<div id="search">
|
|
47
|
+
|
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
|
49
|
+
href="class_list.html">
|
|
50
|
+
|
|
51
|
+
<svg width="24" height="24">
|
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
|
55
|
+
</svg>
|
|
56
|
+
</a>
|
|
57
|
+
|
|
58
|
+
</div>
|
|
59
|
+
<div class="clear"></div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div id="content"><h1>Top Level Namespace
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
</h1>
|
|
67
|
+
<div class="box_info">
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
<h2>Defined Under Namespace</h2>
|
|
82
|
+
<p class="children">
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Practica6.html" title="Practica6 (module)">Practica6</a></span>
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Comida.html" title="Comida (class)">Comida</a></span>, <span class='object_link'><a href="List.html" title="List (class)">List</a></span>, <span class='object_link'><a href="MejorPlato.html" title="MejorPlato (class)">MejorPlato</a></span>, <span class='object_link'><a href="Menu.html" title="Menu (class)">Menu</a></span>, <span class='object_link'><a href="Plato.html" title="Plato (class)">Plato</a></span>
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
</p>
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
</div>
|
|
103
|
+
|
|
104
|
+
<div id="footer">
|
|
105
|
+
Generated on Tue Dec 17 19:32:04 2019 by
|
|
106
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
107
|
+
0.9.20 (ruby-2.5.1).
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
</div>
|
|
111
|
+
</body>
|
|
112
|
+
</html>
|
data/lib/practica6.rb
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
require "practica6/version"
|
|
2
|
+
require 'bigdecimal'
|
|
3
|
+
require 'bigdecimal/util'
|
|
4
|
+
require "practica6/comida"
|
|
5
|
+
require "practica6/menu"
|
|
6
|
+
require "practica6/lista"
|
|
7
|
+
require "practica6/platos"
|
|
8
|
+
require "practica6/mejorplatos"
|
|
9
|
+
|
|
10
|
+
# test test test
|
|
11
|
+
|
|
12
|
+
module Practica6
|
|
13
|
+
class Error < StandardError; end
|
|
14
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# @autor Germán Alfonso Teixidó
|
|
2
|
+
class Comida
|
|
3
|
+
# La clase es comparable
|
|
4
|
+
include Comparable;
|
|
5
|
+
# Los atributos son de lectura
|
|
6
|
+
attr_reader :nombre, :proteinas, :carbohidratos, :lipidos, :GEI, :costeTerreno
|
|
7
|
+
|
|
8
|
+
#
|
|
9
|
+
# Constructor
|
|
10
|
+
#
|
|
11
|
+
# @param [String] nombre Nombre del alimento.
|
|
12
|
+
# @param [Integer] proteinas Cantidad en gramos de proteinas.
|
|
13
|
+
# @param [Integer] carbohidratos Cantidad en gramos de carbohidratos.
|
|
14
|
+
# @param [Integer] lipidos Cantidad en gramos de lipidos.
|
|
15
|
+
# @param [Integer] gei Gases de efecto invernadero emitidos en la producción de 1000g de este alimento
|
|
16
|
+
# @param [Integer] costeTerreno m2 utilizados en la producción de 1000g de este alimento
|
|
17
|
+
#
|
|
18
|
+
def initialize(nombre, proteinas, carbohidratos, lipidos, gei, costeTerreno)
|
|
19
|
+
@nombre, @proteinas, @carbohidratos, @lipidos, @GEI, @costeTerreno= nombre, proteinas, carbohidratos, lipidos, gei, costeTerreno
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
#
|
|
23
|
+
# Devuelve un string con un resumen del alimento
|
|
24
|
+
#
|
|
25
|
+
# @return [String] Cadena del resumen del alimento.
|
|
26
|
+
#
|
|
27
|
+
def resumen()
|
|
28
|
+
"#{@nombre}:\n
|
|
29
|
+
-Proteinas:#{@proteinas}g.\n
|
|
30
|
+
-Carbohidratos:#{@carbohidratos}g.\n
|
|
31
|
+
-Lipidos:#{@lipidos}g.\n
|
|
32
|
+
-GEI:#{@GEI}kgCO2eq.\n
|
|
33
|
+
-Coste del terreno:#{@costeTerreno}m2año.\n"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
#
|
|
37
|
+
# Devuelve un double con las kilocalorias que proporciona el alimento
|
|
38
|
+
#
|
|
39
|
+
# @return [Double] Kilocalorias que devuelve el alimento.
|
|
40
|
+
#
|
|
41
|
+
def kilocalorias
|
|
42
|
+
((@proteinas* 4.0.to_d)+ (@lipidos* 9.0.to_d)+ (@carbohidratos* 4.0.to_d))
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
#
|
|
46
|
+
# Sobreescritura de la funcion <=> de la clase Comparable para comparar dos elementos
|
|
47
|
+
#
|
|
48
|
+
# @param [Comida] another Alimento con el que se pretende comparar este alimento (el alimento que proporcione mayor kilocalorias será mayor).
|
|
49
|
+
#
|
|
50
|
+
def <=>(another)
|
|
51
|
+
if another.class== Comida
|
|
52
|
+
aux1= kilocalorias
|
|
53
|
+
aux2= another.kilocalorias
|
|
54
|
+
aux1<=> aux2
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# @autor Germán Alfonso Teixidó
|
|
2
|
+
class List
|
|
3
|
+
# La clase es enumerable
|
|
4
|
+
include Enumerable
|
|
5
|
+
|
|
6
|
+
# Nodo que forma la Lista
|
|
7
|
+
#
|
|
8
|
+
# @param [<Template>] value Contenido del nodo.
|
|
9
|
+
# @param [Node] next Siguiente nodo en la lista.
|
|
10
|
+
# @param [Node] prev Anterior nodo en la lista.
|
|
11
|
+
#
|
|
12
|
+
Node= Struct.new(:value, :next, :prev)
|
|
13
|
+
|
|
14
|
+
# Los atributos son de lecutra
|
|
15
|
+
attr_reader :tail, :head, :size
|
|
16
|
+
|
|
17
|
+
#
|
|
18
|
+
# Constructor. Genera una Lista vacia, sin nodos, con head y tail nil.
|
|
19
|
+
#
|
|
20
|
+
def initialize
|
|
21
|
+
@tail= nil
|
|
22
|
+
@head= nil
|
|
23
|
+
@size= 0
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
#
|
|
27
|
+
# Introduce un elemento (nodo o valor) en la lista por la cabeza.
|
|
28
|
+
# Si el valor es un nodo, se incluye directamente. Si no lo es, primero se transforma en nodo y se incluye en la lista.
|
|
29
|
+
#
|
|
30
|
+
# @param [<Template>] valor Nodo o valor a introducir en la lista.
|
|
31
|
+
#
|
|
32
|
+
def push_head(valor)
|
|
33
|
+
if valor.class== Node
|
|
34
|
+
addedNode= valor
|
|
35
|
+
else
|
|
36
|
+
addedNode= Node.new(valor)
|
|
37
|
+
end
|
|
38
|
+
addedNode.prev= nil
|
|
39
|
+
addedNode.next= @head
|
|
40
|
+
@head.prev= addedNode unless @head.nil?
|
|
41
|
+
@head= addedNode
|
|
42
|
+
@tail= addedNode if @tail.nil?
|
|
43
|
+
@size= @size+ 1
|
|
44
|
+
return nil
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
#
|
|
48
|
+
# Extrae un nodo en la lista por la cabeza.
|
|
49
|
+
#
|
|
50
|
+
# @return [<Template>] Valor del nodo extraido
|
|
51
|
+
#
|
|
52
|
+
def pop_head
|
|
53
|
+
@head= @head.next unless @head== nil
|
|
54
|
+
@head.prev= nil unless @head== nil
|
|
55
|
+
@tail= nil if @head== nil
|
|
56
|
+
if @size> 0
|
|
57
|
+
@size= @size- 1
|
|
58
|
+
end
|
|
59
|
+
return nil
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
#
|
|
63
|
+
# Introduce un elemento (nodo o valor) en la lista por la cola.
|
|
64
|
+
# Si el valor es un nodo, se incluye directamente. Si no lo es, primero se transforma en nodo y se incluye en la lista.
|
|
65
|
+
#
|
|
66
|
+
# @param [<Template>] valor Nodo o valor a introducir en la lista.
|
|
67
|
+
#
|
|
68
|
+
def push_tail(valor)
|
|
69
|
+
if valor.class== Node
|
|
70
|
+
addedNode= valor
|
|
71
|
+
else
|
|
72
|
+
addedNode= Node.new(valor)
|
|
73
|
+
end
|
|
74
|
+
addedNode.next= nil
|
|
75
|
+
addedNode.prev= @tail
|
|
76
|
+
@tail.next= addedNode unless @tail.nil?
|
|
77
|
+
@tail= addedNode
|
|
78
|
+
@head= addedNode if @head.nil?
|
|
79
|
+
@size= @size+ 1
|
|
80
|
+
return nil
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
#
|
|
84
|
+
# Extrae un nodo en la lista por la cola.
|
|
85
|
+
#
|
|
86
|
+
# @return [<Template>] Valor del nodo extraido
|
|
87
|
+
#
|
|
88
|
+
def pop_tail
|
|
89
|
+
@tail= @tail.prev unless @tail== nil
|
|
90
|
+
@tail.next= nil unless @tail== nil
|
|
91
|
+
@head= nil if @tail== nil
|
|
92
|
+
if @size> 0
|
|
93
|
+
@size= @size- 1
|
|
94
|
+
end
|
|
95
|
+
return nil
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
#
|
|
99
|
+
# Emisiones emitidas por el total de alimentos de la lista, en caso de que la lista sea de #Comida
|
|
100
|
+
#
|
|
101
|
+
# @return [Double] Emisiones totales de la lista de alimentos.
|
|
102
|
+
#
|
|
103
|
+
def emisiones
|
|
104
|
+
iterator= head
|
|
105
|
+
emision= 0.0.to_d
|
|
106
|
+
while iterator!= nil do
|
|
107
|
+
emision= emision+ iterator.value.GEI.to_d
|
|
108
|
+
iterator= iterator.next
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
return emision
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
#
|
|
115
|
+
# Emisiones anuales emitidas por el total de alimentos de la lista, en caso de que la lista sea de #Comida
|
|
116
|
+
#
|
|
117
|
+
# @return [Double] Emisiones totales de la lista de alimentos en un año.
|
|
118
|
+
#
|
|
119
|
+
def emisionest
|
|
120
|
+
return (emisiones* 365)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
#
|
|
124
|
+
# Coste de terreno en m2 del total de alimentos de la lista, en caso de que la lista sea de #Comida
|
|
125
|
+
#
|
|
126
|
+
# @return [Double] Coste de terreno en m2 de la lista de alimentos.
|
|
127
|
+
#
|
|
128
|
+
def terreno
|
|
129
|
+
iterator= head
|
|
130
|
+
coste= 0.0.to_d
|
|
131
|
+
while iterator!= nil do
|
|
132
|
+
coste= coste+ iterator.value.GEI.to_d
|
|
133
|
+
iterator= iterator.next
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
return coste
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
#
|
|
140
|
+
# Ejecuta un bloque de código para cada elemento de la Lista.
|
|
141
|
+
#
|
|
142
|
+
def each
|
|
143
|
+
iterator= @head
|
|
144
|
+
while iterator!= nil do
|
|
145
|
+
yield iterator.value
|
|
146
|
+
iterator= iterator.next
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
#
|
|
151
|
+
# Permite acceder a un elemento de la lista en concreto.
|
|
152
|
+
#
|
|
153
|
+
# @param [Integer] posición del nodo al que se desea acceder.
|
|
154
|
+
#
|
|
155
|
+
# @return [<Tempalte>] Valor del nodo al que se ha accedido.
|
|
156
|
+
#
|
|
157
|
+
def [] (index)
|
|
158
|
+
if index.is_a?Integer
|
|
159
|
+
if index== 0
|
|
160
|
+
return @head.value
|
|
161
|
+
elsif index== (@size- 1)
|
|
162
|
+
return @tail.value
|
|
163
|
+
elsif index< (@size- 1) && index> 0
|
|
164
|
+
iterator= @head
|
|
165
|
+
index.times{iterator= iterator.next}
|
|
166
|
+
return iterator.value
|
|
167
|
+
else
|
|
168
|
+
return nil
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
end
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# @autor Germán Alfonso Teixidó
|
|
2
|
+
class MejorPlato < Plato
|
|
3
|
+
|
|
4
|
+
#
|
|
5
|
+
# Constructor
|
|
6
|
+
#
|
|
7
|
+
# @param [String] nombrePlato Nombre del plato.
|
|
8
|
+
# @param [List] conjuntoAlimentos Lista de alimentos que forman el plato.
|
|
9
|
+
# @param [List] conjuntoCantidades Lista de cantidades de cada alimento que forma el plato.
|
|
10
|
+
#
|
|
11
|
+
def initialize(nombrePlato, conjuntoAlimentos, conjuntoCantidades)
|
|
12
|
+
super(nombrePlato, conjuntoAlimentos, conjuntoCantidades)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
#
|
|
16
|
+
# Cantidad de gases de efecto invernadero liberados por el plato en cuestión.
|
|
17
|
+
#
|
|
18
|
+
# @return [Double] Emisiones de efecto ivernaderos emitidas por el plato.
|
|
19
|
+
#
|
|
20
|
+
def emisionInvernadero
|
|
21
|
+
emision= 0.0.to_d
|
|
22
|
+
conjuntoAlimentos.size.times do |i|
|
|
23
|
+
emision+= (conjuntoAlimentos[i].GEI.to_d)* (conjuntoCantidades[i].to_d/100.0)
|
|
24
|
+
end
|
|
25
|
+
return emision
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
#
|
|
29
|
+
# Cantidad de m2 que han necesitado ser utilizados para producir el plato.
|
|
30
|
+
#
|
|
31
|
+
# @return [Double] Coste en m2 de la producción del plato.
|
|
32
|
+
#
|
|
33
|
+
def costeTerreno
|
|
34
|
+
coste= 0.0.to_d
|
|
35
|
+
conjuntoAlimentos.size.times do |i|
|
|
36
|
+
coste+= (conjuntoAlimentos[i].costeTerreno.to_d)* (conjuntoCantidades[i].to_d/1000.0)
|
|
37
|
+
end
|
|
38
|
+
return coste
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
#
|
|
42
|
+
# Eficiencia energética del plato (kilocalorias)
|
|
43
|
+
#
|
|
44
|
+
# @return [Double] Kilocalorias producidas por el plato
|
|
45
|
+
#
|
|
46
|
+
def eficienciaEnergetica
|
|
47
|
+
eficiencia= 0.0.to_d
|
|
48
|
+
conjuntoAlimentos.size.times do |i|
|
|
49
|
+
eficiencia+= (conjuntoAlimentos[i].kilocalorias.to_d)* (conjuntoCantidades[i].to_d/1000.0)
|
|
50
|
+
end
|
|
51
|
+
return eficiencia
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Practica 9: Paradigmas de programacción funcional
|
|
55
|
+
|
|
56
|
+
#
|
|
57
|
+
# Devuelve un entero en un rango [1 - 3] que indica el impacto medioambiental del plato según su valor calórico total y sus emisiones de efecto invernadero.
|
|
58
|
+
#
|
|
59
|
+
# @return [Integer] Huella nutricional del plato (1, 2, 3).
|
|
60
|
+
#
|
|
61
|
+
def huellaNutricional
|
|
62
|
+
return (indicadorEnergia.to_i+ indicadorCarbono.to_i)/2.to_i
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
#
|
|
66
|
+
# Vease #huellaNutricional
|
|
67
|
+
#
|
|
68
|
+
def indicadorEnergia
|
|
69
|
+
if(valorCaloricoTotal< 670)
|
|
70
|
+
return 1
|
|
71
|
+
elsif(valorCaloricoTotal> 830)
|
|
72
|
+
return 3
|
|
73
|
+
else
|
|
74
|
+
return 2
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
#
|
|
79
|
+
# Vease #huellaNutricional
|
|
80
|
+
#
|
|
81
|
+
def indicadorCarbono
|
|
82
|
+
if(emisionInvernadero< 800)
|
|
83
|
+
return 1
|
|
84
|
+
elsif(emisionInvernadero> 1200)
|
|
85
|
+
return 3
|
|
86
|
+
else
|
|
87
|
+
return 2
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
#
|
|
92
|
+
# Sobreescritura de la funcion <=> de la clase Comparable para comparar dos elementos
|
|
93
|
+
#
|
|
94
|
+
# @param [Comida] another Plato/MejorPlato con el que se pretende comparar este Plato (el plato con mayor #huellaNutricional será mayor).
|
|
95
|
+
#
|
|
96
|
+
def <=>(another)
|
|
97
|
+
if another.class== MejorPlato
|
|
98
|
+
huellaNutricional<=> another.huellaNutricional
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
#
|
|
103
|
+
# Dado un array de platos y un array de precios, incrementa el array de los precios en base al plato con mayor Huella Nutricional del array de platos.
|
|
104
|
+
#
|
|
105
|
+
# @param [Array[Float]] arrayPrecios Array de precios.
|
|
106
|
+
# @param [Array[MejorPlato]] arrayPrecios Array de platos.
|
|
107
|
+
#
|
|
108
|
+
# @return [Array[Float]] array de precios arrayPrecio incrementado.
|
|
109
|
+
#
|
|
110
|
+
def self.aumentarPrecios(arrayPrecios, menu)
|
|
111
|
+
if(menu.max.huellaNutricional== 1)
|
|
112
|
+
arrayPrecios.map{ |a| a * 2}
|
|
113
|
+
elsif(menu.max.huellaNutricional== 2)
|
|
114
|
+
arrayPrecios.map{ |a| a * 3}
|
|
115
|
+
elsif(menu.max.huellaNutricional== 3)
|
|
116
|
+
arrayPrecios.map{ |a| a * 4}
|
|
117
|
+
else
|
|
118
|
+
return -1
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
end
|