NdArray implementations don't throw IllegalRankException as documented if no coordinates provided
Personne n'a encore pris cette issue.
- Langage dominant
- Java
- Étoiles
- 928
- Forks
- 227
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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);
}
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par le contrat documenté de FloatNdArray.getFloat et comparez-le à FloatDenseNdArray.getFloat et positionOf, en particulier la branche des coordonnées nulles. Déterminez si le fait de renvoyer le scalaire à la position 0 est intentionnel ou enfreint le comportement documenté des exceptions ; le travail est terminé lorsque le comportement et sa documentation concordent, avec la couverture pertinente ajoutée ou mise à jour si le projet en fournit.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- machine-learning
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 35/100