NdArray implementations don't throw IllegalRankException as documented if no coordinates provided
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Java
- Estrellas
- 928
- Forks
- 227
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Instead, when no coordinates are provided, we return the scalar at (0, 0, ...). Is this an important idiom that we are preserving, or a questionable choice, or simply a bug?
Here's an example of an abstract method of FloatNdArray that is documented to throw IllegalRankException:
/**
* Returns the float value of the scalar found at the given coordinates.
*
* . . .
*
* @param coordinates coordinates of the scalar to resolve
* @return value of that scalar
* @throws IndexOutOfBoundsException if some coordinates are outside the limits of their respective dimension
* @throws IllegalRankException if number of coordinates is not sufficient to access a scalar element
*/
float getFloat(long... coordinates);
Here's the implementation in FloatDenseNdArray:
@Override
public float getFloat(long... indices) {
return buffer.getFloat(positionOf(indices, true));
}
But if indices.length == 0, then positionOf does not throw the claimed IllegalRankException:
long positionOf(long[] coords, boolean isValue) {
if (coords == null || coords.length == 0) {
return 0;
}
Validator.coordinates(dimensions, coords, isValue);
return dimensions.positionOf(coords);
}
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comience con el contrato documentado de FloatNdArray.getFloat y compárelo con FloatDenseNdArray.getFloat y positionOf, especialmente con la rama de coordenadas cero. Determine si devolver el escalar en la posición 0 es intencionado o infringe el comportamiento de excepciones documentado; se considera terminado cuando el comportamiento y su documentación coinciden, con la cobertura relevante añadida o actualizada si el proyecto la proporciona.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- machine-learning
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 35/100