31 const size_t sourceDataSize,
32 const bool keepInternalCopy)
42 const bool keepInternalCopy)
69 wassert (buffer !=
nullptr && howMany >= 0);
71 if (howMany <= 0 || position >=
dataSize)
105class MemoryStreamTests :
public UnitTest
108 MemoryStreamTests() : UnitTest (
"MemoryInputStream & MemoryOutputStream") {}
110 void runTest()
override
112 beginTest (
"Basics");
113 Random
r = getRandom();
115 int randomInt =
r.nextInt();
116 int64 randomInt64 =
r.nextInt64();
117 double randomDouble =
r.nextDouble();
118 String randomString (createRandomWideCharString (
r));
121 mo.writeInt (randomInt);
122 mo.writeIntBigEndian (randomInt);
123 mo.writeCompressedInt (randomInt);
124 mo.writeString (randomString);
125 mo.writeInt64 (randomInt64);
126 mo.writeInt64BigEndian (randomInt64);
127 mo.writeDouble (randomDouble);
128 mo.writeDoubleBigEndian (randomDouble);
130 MemoryInputStream mi (
mo.getData(),
mo.getDataSize(),
false);
131 expect (mi.readInt() == randomInt);
132 expect (mi.readIntBigEndian() == randomInt);
133 expect (mi.readCompressedInt() == randomInt);
134 expectEquals (mi.readString(), randomString);
135 expect (mi.readInt64() == randomInt64);
136 expect (mi.readInt64BigEndian() == randomInt64);
137 expect (mi.readDouble() == randomDouble);
138 expect (mi.readDoubleBigEndian() == randomDouble);
141 static String createRandomWideCharString (Random&
r)
143 water_wchar
buffer [50] = { 0 };
151 buffer[
i] = (water_wchar) (1 +
r.nextInt (0x10ffff - 1));
153 while (! CharPointer_UTF16::canRepresent (buffer[
i]));
156 buffer[
i] = (water_wchar) (1 +
r.nextInt (0xff));
159 return CharPointer_UTF32 (buffer);
163static MemoryStreamTests memoryInputStreamUnitTests;
int64_t int64
Definition basics.h:91
Definition MemoryOutputStream.h:42
Definition MemoryBlock.h:39
register unsigned i
Definition inflate.c:1575
#define wassert(expression)
JOCTET * buffer
Definition juce_JPEGLoader.cpp:302
constexpr int numElementsInArray(Type(&)[N]) noexcept
Definition juce_MathsFunctions.h:344
Definition AudioSampleBuffer.h:33
Type jmin(const Type a, const Type b)
Definition MathsFunctions.h:60
long long int64
Definition water.h:100
Type jlimit(const Type lowerLimit, const Type upperLimit, const Type valueToConstrain) noexcept
Definition MathsFunctions.h:169
Type * addBytesToPointer(Type *basePointer, IntegerType bytes) noexcept
Definition Memory.h:56
memcpy(hh, h, RAND_HEAD_LEN)
int r
Definition crypt.c:458
mo
Definition zipinfo.c:2287