]> gitweb.factorcode.org Git - factor.git/blob - extra/half-floats/half-floats-tests.factor
Specialized array overhaul
[factor.git] / extra / half-floats / half-floats-tests.factor
1 USING: alien.c-types alien.syntax half-floats kernel math tools.test
2 specialized-arrays ;
3 SPECIALIZED-ARRAY: half
4 IN: half-floats.tests
5
6 [ HEX: 0000 ] [  0.0  half>bits ] unit-test
7 [ HEX: 8000 ] [ -0.0  half>bits ] unit-test
8 [ HEX: 3e00 ] [  1.5  half>bits ] unit-test
9 [ HEX: be00 ] [ -1.5  half>bits ] unit-test
10 [ HEX: 7c00 ] [  1/0. half>bits ] unit-test
11 [ HEX: fc00 ] [ -1/0. half>bits ] unit-test
12 [ HEX: 7eaa ] [ HEX: aaaaaaaaaaaaa <fp-nan> half>bits ] unit-test
13
14 ! too-big floats overflow to infinity
15 [ HEX: 7c00 ] [   65536.0 half>bits ] unit-test
16 [ HEX: fc00 ] [  -65536.0 half>bits ] unit-test
17 [ HEX: 7c00 ] [  131072.0 half>bits ] unit-test
18 [ HEX: fc00 ] [ -131072.0 half>bits ] unit-test
19
20 ! too-small floats flush to zero
21 [ HEX: 0000 ] [  1.0e-9 half>bits ] unit-test
22 [ HEX: 8000 ] [ -1.0e-9 half>bits ] unit-test
23
24 [  0.0  ] [ HEX: 0000 bits>half ] unit-test
25 [ -0.0  ] [ HEX: 8000 bits>half ] unit-test
26 [  1.5  ] [ HEX: 3e00 bits>half ] unit-test
27 [ -1.5  ] [ HEX: be00 bits>half ] unit-test
28 [  1/0. ] [ HEX: 7c00 bits>half ] unit-test
29 [ -1/0. ] [ HEX: fc00 bits>half ] unit-test
30 [  3.0  ] [ HEX: 4200 bits>half ] unit-test
31 [    t  ] [ HEX: 7e00 bits>half fp-nan? ] unit-test
32
33 C-STRUCT: halves
34     { "half" "tom" }
35     { "half" "dick" }
36     { "half" "harry" }
37     { "half" "harry-jr" } ;
38
39 [ 8 ] [ "halves" heap-size ] unit-test
40
41 [ 3.0 ] [
42     "halves" <c-object>
43     3.0 over set-halves-dick
44     halves-dick
45 ] unit-test
46
47 [ half-array{ 1.0 2.0 3.0 1/0. -1/0. } ]
48 [ { 1.0 2.0 3.0 1/0. -1/0. } >half-array ] unit-test
49