Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.java > #13213
| Newsgroups | de.comp.lang.java |
|---|---|
| Date | 2018-10-04 03:34 -0700 |
| References | <a6a1936f-fd65-4f2f-987f-72ad8f2999ec@googlegroups.com> <posjd9$105$1@newsreader4.netcologne.de> <d57b7595-e1a8-4bd8-9c99-15d565f7ec1d@googlegroups.com> <pp4opd$tk2$1@newsreader4.netcologne.de> |
| Message-ID | <935c2a6a-4cc6-4659-a9e5-ed8f85e95bb6@googlegroups.com> (permalink) |
| Subject | Re: Bit packed array |
| From | Heiner Kücker <mail@heinerkuecker.de> |
Am Donnerstag, 4. Oktober 2018 12:07:43 UTC+2 schrieb Patrick Roemer: > Responding to Heiner Kücker: > "The number of input and output combinations for trivial programs is > surprisingly large. It is astronomical for typical programs and beyond > comprehension for typical systems. [...] Clearly, we can never test all > inputs, states, or outputs." > Robert V. Binder, Testing Object-Oriented Systems > §3.3: The Limits of Testing > > Das ist sehr gründlich gedacht, aber effektiv hast Du damit ja gar keine > Tests, weil niemand sie je (komplett) laufen lassen wird. Unit Tests > sollten eigentlich sogar nach jeder in sich abgeschlossenen > Code-Änderung automatisiert durchlaufen; das kannst Du mit diesem Ansatz > komplett knicken. > > Üblicherweise wählt man für Unit Tests Szenarien mit (Kombinationen von) > Extremen oder besonders hervorgehobenen Elementen aus dem erlaubten > Bereich der Eingabewerte (hier etwa: 0, 1, Integer.SIZE,...) und einige > mehr oder minder zufällige Werte, die pars pro toto für die sonstige > Bandbreite stehen. Ergänzen kann man das durch randomisierte Tests a la > QuickCheck[1]. Da gibt es wohl auch diverse Java-Ports; keine Ahnung, > wie es sich damit arbeitet. In den Klassen BitPackedIntArrayArraycopyTestValueIterable und BitPackedLongArrayArraycopyTestValueIterable habe ich statt die Werte mit einem Zähler zu erzeugen ein Bitmuster erzeugt. Mit der Verwendung des Bitmusters habe ich erst ab einer bestimmten Bit-Breite begonnen, bei kleinen Breiten läuft noch der Zähler. Teilweise verwende ich auch nur Wert mit allen Bits 0 oder alternativ allen Bits 1. Es geht darum, dass die Ränder der Werte eingehalten werden. Etwas überrascht hat mich das Verhalten des Verschiebe-Operators https://stackoverflow.com/questions/1023373/findbugs-warning-integer-shift-by-32-what-does-it-mean Beim int-Verschiebe-Operator werden nur die niedrigsten 5 Bit des Operanden beachtet, bei Long 6 Bit. Dieses Verhalten ist aber entsprechend dem Werteüberlauf bei den ganzzahligen Werten, falsches Ergebnis statt Exception. > Viele Grüße > Patrick > > [1] http://www.cse.chalmers.se/~rjmh/QuickCheck/manual.html Bei sowas muss man wahrscheinlich vorher eine Ahnung haben, was schief gehen kann. Schöne Grüße Heiner
Back to de.comp.lang.java | Previous | Next — Previous in thread | Next in thread | Find similar
Bit packed array Heiner Kücker <mail@heinerkuecker.de> - 2018-09-22 19:33 -0700
Re: Bit packed array Patrick Roemer <sangamon@netcologne.de> - 2018-10-01 09:46 +0200
Re: Bit packed array Patrick Roemer <sangamon@netcologne.de> - 2018-10-02 10:21 +0200
Re: Bit packed array Heiner Kücker <mail@heinerkuecker.de> - 2018-10-03 22:05 -0700
Re: Bit packed array Patrick Roemer <sangamon@netcologne.de> - 2018-10-04 12:07 +0200
Re: Bit packed array Heiner Kücker <mail@heinerkuecker.de> - 2018-10-04 03:34 -0700
Re: Bit packed array Heiner Kücker <mail@heinerkuecker.de> - 2018-10-09 23:10 -0700
Re: Bit packed array Patrick Roemer <sangamon@netcologne.de> - 2018-10-10 16:50 +0200
Re: Bit packed array Joerg Meier <joergmmeier@arcor.de> - 2018-10-10 20:15 +0200
Re: Bit packed array Heiner Kücker <mail@heinerkuecker.de> - 2018-10-10 23:17 -0700
Mutation Testing (was: Bit packed array) Patrick Roemer <sangamon@netcologne.de> - 2018-10-12 12:12 +0200
Re: Bit packed array Heiner Kücker <mail@heinerkuecker.de> - 2018-10-10 23:23 -0700
csiph-web