Que la méthode ne peut pas revenir en true. C'est le point de Long.MAX_VALUE. Il serait vraiment à confusion si son nom... faux. Ensuite, il devrait être juste appelé Long.SOME_FAIRLY_LARGE_VALUE et ont littéralement zéro usages raisonnables. Utilisez simplement Android isUserAGoat, ou vous pouvez rouler votre propre fonction qui renvoie toujours false.
Noter qu'un long dans la mémoire prend un nombre fixe d'octets. À Partir D'Oracle:
long: long type de données est signé 64 bits en complément à deux entier. Il a une valeur minimale de -9,223,372,036,854,775,808 et une valeur maximale de 9,223,372,036,854,775,807 (inclus). L'utilisation de ce type de données lorsque vous avez besoin d'une gamme de valeurs plus larges que celles prévues par int.
Comme vous le savez à partir de base de l'informatique ou les mathématiques discrètes, il y a 2^64 valeurs possibles pour une longue, car elle est de 64 bits. Et comme vous le savez les mathématiques discrètes ou la théorie des nombres, ou le sens commun, si il n'y a qu'finitely de nombreuses possibilités, l'un d'eux doit être le plus grand. Que serait Long.MAX_VALUE. Si vous demandez quelque chose de semblable "est-il un entier qui est >0 < 1?" Mathématiquement absurde.
Si vous avez réellement besoin de cela pour quelque chose de réel, alors l'utilisation BigInteger classe.
Quelqu'un devrait le travail sur la rupture de la isUserAGoat API éther par inventer la téléportation ou au moins créer un android gadget pour les chèvres. en supposant que triangle.lborderA est un long ensuite, vous pouvez supprimer cette vérification. Je ne serais pas surpris si l'on optimise. Le code source de test contient le jugement "du triangle.lborderA > 0 && triangle.lborderA <= Long.MAX_VALUE". Il semble donc que je ne peux pas faire mon test unitaire de 100% de couverture. essayez lborderA < 0 l'échec de cette vérification. De même, vous ne pouvez pas manquer une case qui dit if(Boolean.TRUE). Eh bien, selon cette réponse, si vous téléchargez le package com.coffeestainstudios.goatsimulator, puis la téléportation de chèvres peut commencer!
Vous ne pouvez pas. Si vous avez une méthode appelée isBiggerThanMaxLong(long) elle doit toujours retourner false.
Si vous étiez à incrémenter les bits de Long.MAX_VALUE, la prochaine valeur doit être Long.MIN_VALUE. Lire sur les deux-complément et qui devrait vous dire pourquoi.
La méthode ci-dessus ne peut pas revenir true que vous comparez un long valeur avec Long.MAX_VALUE , voir la signature de la méthode, vous pouvez passer seulement long.Tout long peut être aussi grand que le Long.MAX_VALUE, il ne peut pas être plus grand que cela.
Vous pouvez essayer quelque chose comme cela avec BigInteger classe :
Si triangle.lborderA est en effet longue et le test dans le code d'origine est trivialement vrai, et il n'y a aucun moyen de le tester. Il est également inutile.
Toutefois, si triangle.lborderA est un double, la comparaison est utile et peut être testé. isBiggerThanMaxLong(1e300) true (vrai).
publicstaticboolean isBiggerThanMaxLong(double in){return in >Long.MAX_VALUE;}
isBiggerThanMaxLong(Long.MAX_VALUE + 1.0) retournera false. isBiggerThanMaxLong(Long.MAX_VALUE + 1024.0) est également de retour faux. Vous obtenez une vraie avec des doubles >= Long.MAX_VALUE + 1025.0 Vrai. Il serait de retour vrai pour n'importe quel double est plus que Longue.MAX_VALUE, qui sont nombreuses. En raison de la virgule flottante arrondi, Long.MAX_VALUE+1.0 n'est pas l'un d'eux.
Que la méthode ne peut pas revenir en
true
. C'est le point deLong.MAX_VALUE
. Il serait vraiment à confusion si son nom... faux. Ensuite, il devrait être juste appeléLong.SOME_FAIRLY_LARGE_VALUE
et ont littéralement zéro usages raisonnables. Utilisez simplement AndroidisUserAGoat
, ou vous pouvez rouler votre propre fonction qui renvoie toujoursfalse
.Noter qu'un
long
dans la mémoire prend un nombre fixe d'octets. À Partir D'Oracle:Comme vous le savez à partir de base de l'informatique ou les mathématiques discrètes, il y a 2^64 valeurs possibles pour une longue, car elle est de 64 bits. Et comme vous le savez les mathématiques discrètes ou la théorie des nombres, ou le sens commun, si il n'y a qu'finitely de nombreuses possibilités, l'un d'eux doit être le plus grand. Que serait
Long.MAX_VALUE
. Si vous demandez quelque chose de semblable "est-il un entier qui est >0 < 1?" Mathématiquement absurde.Si vous avez réellement besoin de cela pour quelque chose de réel, alors l'utilisation
BigInteger
classe.en supposant que
triangle.lborderA
est unlong
ensuite, vous pouvez supprimer cette vérification. Je ne serais pas surpris si l'on optimise.Le code source de test contient le jugement "du triangle.lborderA > 0 && triangle.lborderA <= Long.MAX_VALUE". Il semble donc que je ne peux pas faire mon test unitaire de 100% de couverture.
essayez
lborderA < 0
l'échec de cette vérification. De même, vous ne pouvez pas manquer une case qui ditif(Boolean.TRUE)
.Eh bien, selon cette réponse, si vous téléchargez le package
com.coffeestainstudios.goatsimulator
, puis la téléportation de chèvres peut commencer!OriginalL'auteur djechlin
Vous ne pouvez pas. Si vous avez une méthode appelée
isBiggerThanMaxLong(long)
elle doit toujours retournerfalse
.Si vous étiez à incrémenter les bits de
Long.MAX_VALUE
, la prochaine valeur doit êtreLong.MIN_VALUE
. Lire sur les deux-complément et qui devrait vous dire pourquoi.OriginalL'auteur James Cronen
Tout d'abord , la méthode ci-dessous ne compile pas car il manque le type de retour et il doit être
Long.MAX_VALUE
en place deLong.Max_value
.La méthode ci-dessus ne peut pas revenir
true
que vous comparez unlong
valeur avecLong.MAX_VALUE
, voir la signature de la méthode, vous pouvez passer seulementlong
.Toutlong
peut être aussi grand que leLong.MAX_VALUE
, il ne peut pas être plus grand que cela.Vous pouvez essayer quelque chose comme cela avec BigInteger classe :
Le code ci-dessous sera de retour
true
:OriginalL'auteur NINCOMPOOP
Si
triangle.lborderA
est en effet longue et le test dans le code d'origine est trivialement vrai, et il n'y a aucun moyen de le tester. Il est également inutile.Toutefois, si
triangle.lborderA
est un double, la comparaison est utile et peut être testé.isBiggerThanMaxLong(1e300)
true (vrai).Vrai. Il serait de retour vrai pour n'importe quel double est plus que Longue.MAX_VALUE, qui sont nombreuses. En raison de la virgule flottante arrondi, Long.MAX_VALUE+1.0 n'est pas l'un d'eux.
OriginalL'auteur Patricia Shanahan