Skip to content

Commit 0001bf8

Browse files
committed
Array elements no longer wrapped
1 parent 4687fba commit 0001bf8

File tree

2 files changed

+18
-124
lines changed

2 files changed

+18
-124
lines changed

src/Data/ArrayBuffer/DataView.purs

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -79,60 +79,59 @@ function setter(s) {
7979

8080
type Setter r = forall e. DataView -> r -> ByteOffset -> Eff (writer :: Writer | e) Unit
8181

82-
83-
getInt8 :: Getter Int8
82+
getInt8 :: Getter Number
8483
getInt8 = getter "getInt8" 1
8584

86-
getInt16 :: Getter Int16
85+
getInt16 :: Getter Number
8786
getInt16 = getter "getInt16" 2
8887

89-
getInt32 :: Getter Int32
88+
getInt32 :: Getter Number
9089
getInt32 = getter "getInt32" 4
9190

92-
getUint8 :: Getter Uint8
91+
getUint8 :: Getter Number
9392
getUint8 = getter "getUint8" 1
9493

95-
getUint16 :: Getter Uint16
94+
getUint16 :: Getter Number
9695
getUint16 = getter "getUint16" 2
9796

98-
getUint32 :: Getter Uint32
97+
getUint32 :: Getter Number
9998
getUint32 = getter "getUint32" 4
10099

101-
getUint8Clamped :: Getter Uint8Clamped
100+
getUint8Clamped :: Getter Number
102101
getUint8Clamped = getter "getUint8Clamped" 1
103102

104-
getFloat32 :: Getter Float32
103+
getFloat32 :: Getter Number
105104
getFloat32 = getter "getFloat32" 4
106105

107-
getFloat64 :: Getter Float64
106+
getFloat64 :: Getter Number
108107
getFloat64 = getter "getFloat64" 8
109108

110109

111-
setInt8 :: Setter Int8
110+
setInt8 :: Setter Number
112111
setInt8 = setter "setInt8"
113112

114-
setInt16 :: Setter Int16
113+
setInt16 :: Setter Number
115114
setInt16 = setter "setInt16"
116115

117-
setInt32 :: Setter Int32
116+
setInt32 :: Setter Number
118117
setInt32 = setter "setInt32"
119118

120-
setUint8 :: Setter Uint8
119+
setUint8 :: Setter Number
121120
setUint8 = setter "setUint8"
122121

123-
setUint16 :: Setter Uint16
122+
setUint16 :: Setter Number
124123
setUint16 = setter "setUint16"
125124

126-
setUint32 :: Setter Uint32
125+
setUint32 :: Setter Number
127126
setUint32 = setter "setUint32"
128127

129-
setUint8Clamped :: Setter Uint8Clamped
128+
setUint8Clamped :: Setter Number
130129
setUint8Clamped = setter "setUint8Clamped"
131130

132-
setFloat32 :: Setter Float32
131+
setFloat32 :: Setter Number
133132
setFloat32 = setter "setFloat32"
134133

135-
setFloat64 :: Setter Float64
134+
setFloat64 :: Setter Number
136135
setFloat64 = setter "setFloat64"
137136

138137

test/Main.purs

Lines changed: 0 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -8,90 +8,12 @@ import Data.ArrayBuffer.Types
88
import qualified Data.ArrayBuffer.ArrayBuffer as AB
99
import qualified Data.ArrayBuffer.DataView as DV
1010
import qualified Data.ArrayBuffer.Typed as TA
11-
import qualified Data.ArrayBuffer.Serializer as S
12-
import qualified Data.ArrayBuffer.Deserializer as D
1311
import Data.ArrayBuffer.Show
1412
import Control.Monad.Eff
1513
import Control.Monad.Eff.Random
1614
import Control.Monad.Eff.Exception
1715
import Math
1816

19-
newtype Comp = Comp Number
20-
21-
putComp (Comp v) = S.putInt8 (Int8 v)
22-
23-
24-
getComp d = do
25-
v <- D.getInt8 d
26-
return $ case v of
27-
(Right (Int8 vv)) -> Right $ Comp vv
28-
(Left err) -> Left err
29-
30-
instance eqComp :: Eq Comp where
31-
(==) (Comp v0) (Comp v1) = v0 == v1
32-
(/=) a b = not $ a == b
33-
34-
instance showComp :: Show Comp where
35-
show (Comp v) = "Comp " ++ show v
36-
37-
instance arbComp :: Arbitrary Comp where
38-
arbitrary = uniformToComp <$> arbitrary
39-
where
40-
uniformToComp n = Comp $ Math.floor (n * 256) - 128
41-
42-
data V4 = V4 Comp Comp Comp Comp
43-
44-
instance eqV4 :: Eq V4 where
45-
(==) (V4 x0 y0 z0 t0) (V4 x1 y1 z1 t1) = x0 == x0 && y0 == y1 && z0 == z1 && t0 == t1
46-
(/=) a b = not $ a == b
47-
48-
instance showV4 :: Show V4 where
49-
show (V4 x y z t) = "(V4 " ++ show x ++ " " ++ show y ++ " " ++ show z ++ " " ++ show t ++ ")"
50-
51-
instance arbV4 :: Arbitrary V4 where
52-
arbitrary = V4 <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary
53-
54-
55-
putV4 (V4 x y z t) d = pure d >>= putComp x >>= putComp y >>= putComp z >>= putComp t
56-
57-
getV4 d = do
58-
let comp = getComp d
59-
x <- comp
60-
y <- comp
61-
z <- comp
62-
t <- comp
63-
return $ V4 <$> x <*> y <*> z <*> t
64-
65-
data M4 = M4 V4 V4 V4 V4
66-
67-
instance eqM4 :: Eq M4 where
68-
(==) (M4 x0 y0 z0 t0) (M4 x1 y1 z1 t1) = x0 == x0 && y0 == y1 && z0 == z1 && t0 == t1
69-
(/=) a b = not $ a == b
70-
71-
instance showM4 :: Show M4 where
72-
show (M4 x y z t) = "M4 " ++ show x ++ " " ++ show y ++ " " ++ show z ++ " " ++ show t
73-
74-
instance arbM4 :: Arbitrary M4 where
75-
arbitrary = M4 <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary
76-
77-
78-
putM4 (M4 x y z t) d = pure d >>= putV4 x >>= putV4 y >>= putV4 z >>= putV4 t
79-
80-
getM4 d = do
81-
let v4= getV4 d
82-
x <- v4
83-
y <- v4
84-
z <- v4
85-
t <- v4
86-
return $ M4 <$> x <*> y <*> z <*> t
87-
88-
foreign import ut """
89-
function ut(a) {
90-
console.log(a);
91-
return a;
92-
}
93-
""" :: forall a. a -> a
94-
9517
main :: Eff (trace :: Trace, random :: Random, err :: Exception, writer :: DV.Writer, reader :: DV.Reader) Unit
9618
main = do
9719
let ab = AB.create 4
@@ -124,34 +46,7 @@ main = do
12446

12547
assert $ [1,2,3] == (TA.toArray $ TA.asInt8Array $ DV.whole $ AB.fromArray [1,2,3])
12648

127-
quickCheck short
128-
129-
quickCheck serdes
130-
131-
serdes :: M4 -> M4 -> M4 -> M4 -> Boolean
132-
serdes m0 m1 m2 m3 = forcePure $ do
133-
let a = S.serialized 256 \s -> pure s >>= putM4 m0 >>= putM4 m1 >>= putM4 m2 >>= putM4 m3
134-
d <- D.deserializer a
135-
let g = getM4 d
136-
m0' <- g
137-
m1' <- g
138-
m2' <- g
139-
m3' <- g
140-
return $ (Right m0) == m0' && (Right m1) == m1' && (Right m2) == m2' && (Right m3) == m3'
141-
142-
short :: M4 -> M4 -> Boolean
143-
short m0 m1 = forcePure $ do
144-
let a = S.serialized 256 \s -> putM4 m0 s
145-
d <- D.deserializer a
146-
let g = getM4 d
147-
m0' <- g
148-
m1' <- g
149-
return $ m0' == (Right m0) && m1' /= (Right m1) && m1' == (Left "Short read")
150-
151-
15249

15350
assert :: Boolean -> QC Unit
15451
assert = quickCheck' 1
15552

156-
foreign import forcePure "function forcePure(e) { return e(); }" :: forall e. (Eff (|e) Boolean) -> Boolean
157-

0 commit comments

Comments
 (0)