<jupyter_start><jupyter_text>Revisión de código para generación de índices**Fecha:** 7 de Abril de 2020**Responsable de revisión:** <NAME>**Código revisado**<jupyter_code>indices <- function(n) {
  # Crea una lista de tamaño (n-1)n/2 con pares de índices de la siguiente
  #  manera: (1,2),..,(1,n),(2,3),..,(2,n),...,(n-1,n)
  # Args: 
  #    n: número entero postivo 
  #       se refiere al número de columnas
  #Returns:
  #    lista con pares de índices
    a <- NULL
    b <- NULL
    indices <- NULL
    for (i in 1:(n-1)){
    a <- append(a,rep(i,n-i))
    b <- append(b,seq(i+1,n))    
    }
    for(i in 1:round(n*(n-1)/2))
    indices[[i]] <- list(c(a[i], b[i]))
    indices


}<jupyter_output><empty_output><jupyter_text>**1.Sobre la documentación del código/de la función**¿Se encuentran presentes en la implementación los siguientes elementos? Por favor, ingrese explicaciones detalladas.**a) Descripción concisa y breve de lo que hace el código/la función**La función crea una lista de tamaño $\frac{n(n-1)}{2}$ con pares de índices de la siguiente manera: $(1,2),..,(1,n),(2,3),..,(2,n),...,(n-1,n)$**b) Descripción de sus argumentos de entrada, su significado y rango de valores que pueden tomar**El argumento que toma la función es $n$, entero positivo, que se refiere al número de columnas.**c) Descripción de los tipos de argumentos de entrada y de salida (por ejemplo, valores enteros, reales, strings, dataframe, matrices, etc)**El argumento de entrada es $n$ que corresponde al número de columnas, la función tiene como argumento de salida una lista de tamaño $\frac{n(n-1)}{2}$ con pares de índices.**d) Descripción de la salida de la función, su significado y valores/objetos que deben regresa**La salida es una lista de tamaño $\frac{n(n-1)}{2}$ con los pares de índices, el tipo de objeto que regresa la función de de clase list. **2. Cumplimiento de objetivos del código/de la función**La función cumple el objetivo, genera una lista, la cual sus elementos son listas. **a) ¿El código cumple los objetivos para los que fue diseñado?**Sí.**b) ¿La salida de la función genera una lista de tamaño n(n+1)/2?**La función sí genera una lista de tamaño $\frac{n(n-1)}{2}$**b) ¿La salida de la función genera una lista de elementos (tuplas) cuyos elementos son accesibles en coordenadas (x,y)?**Sí, para acceder a elemento k la lista, se logra con el siguiente comando: indices[[k]][[1]]; para acceder a la condenada x se logra de la siguiente manera indices[[k]][[1]][[1]] y para acceder a la coordenada y se logra como indices[[k]][[1]][[2]]. **3. Pruebas**Ocupe la presente sección para hacer diseño de pruebas variando los parámetros que recibe el código la función en diferentes rangos para evaluae su comportamiento y/o detectar posibles fallos**Test 1****Objetivo del test:** Verificar que la función funciona para números de magnitudes grandes y pequeñas.**Implementación del test:**<jupyter_code>tail(indices(1500))
tail(indices(10))<jupyter_output><empty_output><jupyter_text>Principales hallazos del test:* La función funciona correctamente par números enteros positivos.**Test 2*****Objetivo del test:** Verificar la longitud de la lista.**Implementación del test:**<jupyter_code>length(indices(1000))
(1000-1)*1000/2<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12503812137846904, 'fraction_numerical': 0.020433058859408357, 'mean_word_length': 4.867620751341682, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 14, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '454167', 'license': 'MIT', 'n_tokens_mistral': 1183, 'n_tokens_neox': 1165, 'n_words': 411, 'path': 'test/.ipynb_checkpoints/Rev_Generacion_de_Indices-checkpoint.ipynb', 'repo_name': 'mno-2020-gh-classroom/ex-modulo-3-comp-matricial-svd-czammar', 'size': '3283'}