11using NUnit . Framework ;
22using System ;
3+ using System . Threading ;
34
45namespace Tests
56{
@@ -154,5 +155,69 @@ public void TryFreeTest()
154155 }
155156 }
156157 }
158+
159+ [ Test ]
160+ public void ShiftLeftTest ( )
161+ {
162+ unsafe
163+ {
164+ using ( var memory = new StackMemoryCollections . Struct . StackMemory ( sizeof ( long ) * 5 ) )
165+ {
166+ var long1Ptr = ( long * ) memory . AllocateMemory ( sizeof ( long ) ) ;
167+ * long1Ptr = 111111111 ;
168+
169+ var long2Ptr = ( long * ) memory . AllocateMemory ( sizeof ( long ) ) ;
170+ * long2Ptr = 222222222 ;
171+
172+ var long3Ptr = ( long * ) memory . AllocateMemory ( sizeof ( long ) ) ;
173+ * long3Ptr = 333333333 ;
174+
175+ var long4Ptr = ( long * ) memory . AllocateMemory ( sizeof ( long ) ) ;
176+ * long4Ptr = 444444444 ;
177+
178+ var long5Ptr = ( long * ) memory . AllocateMemory ( sizeof ( long ) ) ;
179+ * long5Ptr = 555555555 ;
180+
181+ memory . ShiftLeft ( ( byte * ) long2Ptr , ( byte * ) memory . Current , sizeof ( long ) ) ;
182+
183+ Assert . That ( * long1Ptr , Is . EqualTo ( ( long ) 222222222 ) ) ;
184+ Assert . That ( * long2Ptr , Is . EqualTo ( ( long ) 333333333 ) ) ;
185+ Assert . That ( * long3Ptr , Is . EqualTo ( ( long ) 444444444 ) ) ;
186+ Assert . That ( * long4Ptr , Is . EqualTo ( ( long ) 555555555 ) ) ;
187+ }
188+ }
189+ }
190+
191+ [ Test ]
192+ public void ShiftRightTest ( )
193+ {
194+ unsafe
195+ {
196+ using ( var memory = new StackMemoryCollections . Struct . StackMemory ( sizeof ( long ) * 5 ) )
197+ {
198+ var long1Ptr = ( long * ) memory . AllocateMemory ( sizeof ( long ) ) ;
199+ * long1Ptr = 111111111 ;
200+
201+ var long2Ptr = ( long * ) memory . AllocateMemory ( sizeof ( long ) ) ;
202+ * long2Ptr = 222222222 ;
203+
204+ var long3Ptr = ( long * ) memory . AllocateMemory ( sizeof ( long ) ) ;
205+ * long3Ptr = 333333333 ;
206+
207+ var long4Ptr = ( long * ) memory . AllocateMemory ( sizeof ( long ) ) ;
208+ * long4Ptr = 444444444 ;
209+
210+ var long5Ptr = ( long * ) memory . AllocateMemory ( sizeof ( long ) ) ;
211+ * long5Ptr = 777777777 ;
212+
213+ memory . ShiftRight ( ( byte * ) long1Ptr , ( byte * ) long5Ptr , sizeof ( long ) ) ;
214+
215+ Assert . That ( * long2Ptr , Is . EqualTo ( ( long ) 111111111 ) ) ;
216+ Assert . That ( * long3Ptr , Is . EqualTo ( ( long ) 222222222 ) ) ;
217+ Assert . That ( * long4Ptr , Is . EqualTo ( ( long ) 333333333 ) ) ;
218+ Assert . That ( * long5Ptr , Is . EqualTo ( ( long ) 444444444 ) ) ;
219+ }
220+ }
221+ }
157222 }
158223}
0 commit comments