Project

matrices

0.0
No commit activity in last 3 years
No release in over 3 years
Permite representar y realizar operaciones con matrices densas y dispersas
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

 Project Readme

Cristo González Rodríguez | Juvenal Santiso Hernández

Grupo 07 - Turno de mañana

====> Práctica 9 <====

-> Repositorio Inicial

  • Fichero "Rake", con las tareas de ayuda de Bundler, preparado para poder trabajar con la herramienta de integración continua "Travis".

  • Fichero ".travis.yml" con las versiones/implementaciones de Ruby en las que se va a testear.

  • Fichero "Gemfile" que controla las dependencias de las gemas utilizadas (gestionadas a través del fichero con extension ".gemspec").

  • Fichero "Guardfile" para trabajar con la herramienta de comprobación continua "Guard".

  • Fichero "matrices.gemspec", plantilla para la creación de nuestra gema, con la información requerida, y las dependencias de gemas para "Gemfile".

  • Se incluyen los ficheros "lib/fraccion.rb", "lib/mcd.rb", "lib/matrices.rb" (anterior clase Matriz), que contienen las implementaciones de las anteriores prácticas.

  • Se incluyen los ficheros de definición de espectativas "spec/fraccion_spec.rb" (para "fraccion.rb"), y "spec/matrices_spec.rb" (para "matrices.rb"), con las espectativas para la antigua clase Matriz.

  • Se incluye el fichero "tc_matrices.rb" vacío, para la posterior definición de pruebas unitarias.

-> Definición de espectativas "spec/fraccion_spec.rb"

  • Se definen las espectativas para la creación de matrices dispersas y densas, y la realización de operaciones con las mismas.

-> Creando el código

  • Se plantea la jerarquía de herencia de la clase matriz, esta se ha planteado que se creara dos clases hijas de matriz.rb matriz_dispersa.rb y matriz_densa.rb. Todos los métodos de operadores se han definido en la clase madre; en las clases hijas en lo que se ha querido hacer incapié es en el modo de almacenar cada una y por consiguiente tendrá metodos de acceso distintos, por esto de definió el método [] y []= de nuevo en la matriz dispersa.

-> Añadiendo los Test Case

  • Se definen los test para la revisión de los métodos de la clase.

-> Definición de espectativas para matrices que puedan contener fracciones

  • Se definen las espectativas para trabajar con matrices densas y disperas, y se modifica levemente la implementación para su correcto funcionamiento.

-> Definición de espectativas de utilización de métodos "max" y "min"

  • Se definen las espectativas para el cálculo de los valores máximos y mínimos de una matriz, con las funciones "max" y "min" respectivamente.

-> Implementación métodos "max" y "min", y creación de pruebas

  • Se satisfacen las espectativas para el cálculo de los elementos máximos y mínimos de una matriz, mediante la creación de los métodos "max" y "min", en la clase abstracta Matriz
  • Se añaden al fichero "test/tc_matrices.rb", los test necesarios para comprobar el correcto funcionamiento de dichos métodos.

-> Creación de la gema: "pkg/matrices-0.0.1.gem"

  • Se crea la gema con la tarea 'rake build'.
  • Se modifica el fichero ".gitignore" para poder subir el contenido del directorio "pkg" y los ficheros acabados en ".gem" (ignorados por defecto), al repositorio.
  • Publicación de la gema: "https://rubygems.org/gems/matrices".