You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							45 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							45 lines
						
					
					
						
							1.3 KiB
						
					
					
				| <?php
 | |
| namespace Tests\PhpType;
 | |
| 
 | |
| use PHPModbus\PhpType;
 | |
| use PHPUnit\Framework\TestCase;
 | |
| 
 | |
| class PhpTypeBytes2Mixed extends TestCase
 | |
| {
 | |
|     const DATA = [
 | |
|         "0" => 125, // 32098 (DINT)
 | |
|         "1" => 98,
 | |
|         "2" => 0,
 | |
|         "3" => 0,
 | |
|         "4" => 0,  // 0 (DINT)
 | |
|         "5" => 0,
 | |
|         "6" => 0,
 | |
|         "7" => 0,
 | |
|         "8" => 0,  // 0 (DINT)
 | |
|         "9" => 0,
 | |
|         "10" => 0,
 | |
|         "11" => 0,
 | |
|         "12" => 255, // -1 (DINT)
 | |
|         "13" => 255,
 | |
|         "14" => 255,
 | |
|         "15" => 255,
 | |
|         "16" => 158, // -25000 (INT)
 | |
|         "17" => 88,
 | |
|         "18" => 97, // 25000 (INT)
 | |
|         "19" => 168
 | |
|     ];
 | |
| 
 | |
|     public function testUnsignedInt()
 | |
|     {
 | |
|         $this->assertEquals(32098, PhpType::bytes2unsignedInt(array_slice(self::DATA, 0, 4)));
 | |
|     }
 | |
| 
 | |
|     public function testSignedInt()
 | |
|     {
 | |
|         $this->assertEquals(0, PhpType::bytes2signedInt(array_slice(self::DATA, 4, 4)));
 | |
|         $this->assertEquals(0, PhpType::bytes2signedInt(array_slice(self::DATA, 8, 4)));
 | |
|         $this->assertEquals(-1, PhpType::bytes2signedInt(array_slice(self::DATA, 12, 4)));
 | |
|         $this->assertEquals(-25000, PhpType::bytes2signedInt(array_slice(self::DATA, 16, 2)));
 | |
|         $this->assertEquals(25000, PhpType::bytes2signedInt(array_slice(self::DATA, 18, 2)));
 | |
|     }
 | |
| }
 | |
| 
 |