content: /*
   * This file was automatically generated by UTestGen and EvoSuite
   * Thu Mar 21 09:31:58 GMT 2024
   */
  
  package net.virtualinfinity.atrobots.robot;
  
  import org.junit.jupiter.api.Test;
  import static org.junit.jupiter.api.Assertions.*;
  import org.junit.jupiter.api.Timeout;
  import java.util.concurrent.TimeUnit;
  import static org.evosuite.runtime.EvoAssertions.*;
  import net.virtualinfinity.atrobots.arena.Position;
  import net.virtualinfinity.atrobots.computer.HardwareBus;
  import net.virtualinfinity.atrobots.computer.MemoryCell;
  import net.virtualinfinity.atrobots.hardware.mines.MineLayer;
  import net.virtualinfinity.atrobots.hardware.radio.Transceiver;
  import net.virtualinfinity.atrobots.hardware.scanning.sonar.Sonar;
  import net.virtualinfinity.atrobots.hardware.shield.Shield;
  import net.virtualinfinity.atrobots.hardware.throttle.Throttle;
  import net.virtualinfinity.atrobots.hardware.turret.Turret;
  import net.virtualinfinity.atrobots.measures.AbsoluteAngle;
  import net.virtualinfinity.atrobots.measures.Duration;
  import net.virtualinfinity.atrobots.robot.FinalRobotScore;
  import net.virtualinfinity.atrobots.robot.Robot;
  import net.virtualinfinity.atrobots.robot.RobotListener;
  import net.virtualinfinity.atrobots.robot.RobotScore;
  import net.virtualinfinity.atrobots.robot.RobotScoreKeeper;
  import org.evosuite.runtime.EvoRunner;
  import org.evosuite.runtime.EvoRunnerParameters;
  import org.junit.runner.RunWith;
  
  @RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, separateClassLoader = true) 
  public class Robot_ESTest extends Robot_ESTest_scaffolding {
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testInflictedDamageThrowsNullPointerException() throws Throwable  {
        // Given a RobotScoreKeeper object and an invalid robot ID (3249)
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("=:4$WFG!gtzlaBO.Ip ", 3249, arg2);
        
        // When the inflictedDamage method is called with an invalid robot ID (3249)
        try {
        robot.inflictedDamage(3249);
        fail("Expecting exception: NullPointerException");
        } catch(NullPointerException e) {
        // Then the method should throw a null pointer exception
        verifyException("net.virtualinfinity.atrobots.robot.Robot", e);}
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsOverburnReturningTrue() throws Throwable  {
        // Create a new RobotScoreKeeper instance
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        
        // Create a new robot object with an overburn setting
        Robot robot = new Robot("", 3041, arg2);
        robot.setOverburn(true);
        
        // Check if the robot is in overburn mode
        boolean overburn = robot.isOverburn();
        
        // Assert that the robot is in overburn mode
        assertTrue(overburn);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTotalTiesReturningPositive() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot arg0 = new Robot("p5", 1, arg2);
        arg2.tiedRound(arg0);
        arg0.getTotalTies();
        assertEquals(0, arg0.getRoundKills());
        assertEquals(1, arg0.getId());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTotalKillsReturningPositive() throws Throwable  {
        // No Comments were added
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot arg0 = new Robot("net.virtualinfinity.atrobots.robot.Robot$1", 1789, arg2);
        arg2.killedRobot(arg0);
        arg0.getTotalKills();
        assertEquals(0, arg0.getRoundKills());
        assertEquals(1789, arg0.getId());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTotalDeathsReturningPositive() throws Throwable  {
        // No Comments were added
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot arg0 = new Robot("", 4096, arg2);
        arg2.died(arg0);
        arg0.getTotalDeaths();
        assertEquals(4096, arg0.getId());
        assertEquals(0, arg0.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetShield() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("net.virtualinfinity.atrobots.computer.JumpWhenZeroInstruction", 2663, arg2);
        Shield arg0 = new Shield(2663);
        robot.setShield(arg0);
        robot.getShield();
        assertEquals(2663, robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetNameReturningNull() throws Throwable  {
        // Create a new instance of RobotScoreKeeper and initialize it with a default value
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        
        // Create a new instance of Robot and assign values to its fields
        Robot robot = new Robot(null, 4514, arg2);
        
        // Check if the getName method returns the expected value
        assertEquals("", robot.getName());
        
        // Check if the getRoundKills method returns the expected value
        assertEquals(0, robot.getRoundKills());
        
        // Check if the getId method returns the expected value
        assertEquals(4514, robot.getId());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetNameReturningNonEmptyString() throws Throwable  {
        // No Comments were added
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("x$e Pd[Pbke\"N[Xz", 41, arg2);
        robot.getName();
        assertEquals(41, robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetIdReturningZero() throws Throwable  {
        // Create a new RobotScoreKeeper object
        RobotScoreKeeper scoreKeeper = new RobotScoreKeeper();
        
        // Create a copy of the initial robot score
        RobotScore initialScore = FinalRobotScore.copyOf(scoreKeeper);
        
        // Create a new Robot object with the scanner class name and ID 0, and initialize it with the initial score
        Robot robot = new Robot("net.virtualinfinity.atrobots.hardware.scanning.scanner.Scanner", 0, initialScore);
        
        // Verify that the ID of the robot is equal to 0
        assertEquals(0, robot.getId());
        
        // Verify that the round kills of the robot are equal to 0
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetIdReturningNegative() throws Throwable  {
        // No Comments were added
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("C5uJ#.7Cq~S", (-906), arg2);
        int id = robot.getId();
        assertEquals(0, robot.getRoundKills());
        assertEquals((-906), id);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetHeatSinks() throws Throwable  {
        // This test case tests the getHeatSinks method of the Robot class.
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("", (-2384), arg2);
        
        // The test first creates a Robot object with an ID of -2384 and
        // a score keeper.
        
        robot.getHeatSinks();
        
        // The test then calls the getHeatSinks method on the robot object.
        
        assertEquals((-2384), robot.getId());
        
        // This assertion checks that the ID of the robot is still -2384 after
        // calling the getHeatSinks method.
        
        assertEquals(0, robot.getRoundKills());
        
        // This assertion checks that the round kills count of the robot is 0
        // after calling the getHeatSinks method.
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsOverburnReturningFalse() throws Throwable  {
        // Given
        RobotScoreKeeper scoreKeeper = new RobotScoreKeeper();
        Robot robot = new Robot(null, 641, scoreKeeper);
        
        // When
        robot.isOverburn();
        
        // Then
        assertEquals(641, robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetArmor() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg0 = new RobotScoreKeeper();
        RobotScore arg2 = FinalRobotScore.copyOf(arg0);
        Robot robot = new Robot("GoaD48n'", (-255), arg2);
        robot.getArmor();
        assertEquals(0, robot.getRoundKills());
        assertEquals((-255), robot.getId());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetIdReturningPositive() throws Throwable  {
        // Given a new robot with a specific score keeper and a non-zero starting round kills
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot(",vK]_]Z0V;", 2059, arg2);
        
        // When the id of the robot is retrieved
        int id = robot.getId();
        
        // Then the id should be equal to its starting round kills
        assertEquals(2059, id);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShieldReturningNull() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("net.virtualinfinity.atrobots.computer.JumpWhenZeroInstruction", 2663, arg2);
        robot.getShield();
        assertEquals(0, robot.getRoundKills());
        assertEquals(2663, robot.getId());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testKilledRobot() throws Throwable  {
        // Test that a RobotScoreKeeper is created correctly and that its round kills is set to 0
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("C5uJ#.7Cq~S", (-906), arg2);
        assertEquals(0, robot.getRoundKills());
        
        // Test that a Robot is created correctly and that its ID is set correctly
        assertEquals((-906), robot.getId());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testTieRound() throws Throwable  {
        // Given a Robot and its ScoreKeeper
        RobotScoreKeeper scoreKeeper = new RobotScoreKeeper();
        Robot robot = new Robot("Invalid", 4081, scoreKeeper);
        
        // When the round is tied
        robot.tieRound();
        
        // Then the total ties should be incremented by one
        assertEquals(1, robot.getTotalTies());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testWinRound() throws Throwable  {
        // Given: A new RobotScoreKeeper and a Robot with a listener attached to it
        RobotScoreKeeper scoreKeeper = new RobotScoreKeeper();
        Robot robot = new Robot("net.virtualinfinity.atrobots.robot.Robot$2", (-1), scoreKeeper);
        robot.addRobotListener(scoreKeeper);
        
        // When: The robot wins a round
        robot.winRound();
        
        // Then: The robot's total wins should be 1
        int expectedWins = 1;
        int actualWins = robot.getTotalWins();
        assertEquals(expectedWins, actualWins);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddRobotListener() throws Throwable  {
        // No Comments were added
        RobotScoreKeeper arg0 = new RobotScoreKeeper();
        Robot robot = new Robot((String) null, 103, arg0);
        robot.addRobotListener(arg0);
        // Undeclared exception!
        try { 
          robot.armorDepleted();
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("net.virtualinfinity.atrobots.robot.Robot", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCollidesThrowsNullPointerException() throws Throwable  {
        // Given: A robot with a null microcode instruction
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("net.virtualinfinity.atrobots.computer.InvalidMicrocodeInstruction", 4096, arg2);
        
        // When: The robot collides with another robot
        try {
        robot.collides();
        
        // Then: An exception is thrown
        fail("Expecting exception: NullPointerException");
        
        } catch (NullPointerException e) {
        // Verify that the correct exception was thrown
        verifyException("net.virtualinfinity.atrobots.robot.Robot", e);}
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetTransceiver() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("", (-1431655765), arg2);
        Transceiver arg0 = new Transceiver();
        robot.setTransceiver(arg0);
        robot.getTransceiver();
        assertEquals((-1431655765), robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetSonar() throws Throwable  {
        // Arrange
        RobotScoreKeeper scoreKeeper = new RobotScoreKeeper();
        Robot robot = new Robot("net.Xi,tual;nfinity.atrob`ts.com6uter.DebugInfo", 1881, scoreKeeper);
        Sonar sonar = new Sonar();
        
        // Act
        robot.setSonar(sonar);
        int id = robot.getId();
        int roundKills = robot.getRoundKills();
        
        // Assert
        assertEquals(1881, id);
        assertEquals(0, roundKills);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTotalWinsReturningZero() throws Throwable  {
        // Given: a new instance of the RobotScoreKeeper class with a robot ID and a score keeper
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("/", 1763, arg2);
        
        // When: getting the total wins of the robot
        int totalWins = robot.getTotalWins();
        
        // Then: the total wins should be equal to the ID of the robot
        assertEquals(1763, totalWins);
        
        // And: the round kills should be 0
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTransceiverReturningNull() throws Throwable  {
        // Create a new RobotScoreKeeper instance
        RobotScoreKeeper scoreKeeper = new RobotScoreKeeper();
        
        // Initialize the robot with a non-empty name and an ID of 34
        Robot robot = new Robot("", 34, FinalRobotScore.copyOf(scoreKeeper));
        
        // Verify that the robot's ID is set correctly
        assertEquals(34, robot.getId());
        
        // Verify that the round kills of the robot are initialized to zero
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testReset() throws Throwable  {
        // Create a new RobotScoreKeeper instance
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        
        // Create a new Robot instance with the given id and score keeper
        Robot robot = new Robot("net.virtualinfinity.atrobots.robot.Robot$GetRobotStatisticsInterrupt", 2875, arg2);
        
        // Reset the robot's scores and statistics
        robot.reset();
        
        // Assert that the robot's id is equal to the given id
        assertEquals(2875, robot.getId());
        
        // Assert that the robot's round kills is equal to 0
        assertEquals(0, robot.getRoundKills());
        
        // Assert that the robot is not overburned
        assertFalse(robot.isOverburn());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTurretShiftThrowsNullPointerException() throws Throwable  {
        // Given: A RobotScoreKeeper and a Robot instance with a non-null turret shift
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("/", 1763, arg2);
        
        // When: The getTurretShift method is called on the Robot instance with a null turret shift
        try {
        robot.getTurretShift();
        fail("Expecting exception: NullPointerException");
        } catch(NullPointerException e) {
        // Then: A NullPointerException is thrown with no message in the exception (getMessage() returned null)
        verifyException("net.virtualinfinity.atrobots.robot.Robot", e);}
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTotalKillsReturningZero() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("|7h/GK", 83, arg2);
        robot.getTotalKills();
        assertEquals(0, robot.getRoundKills());
        assertEquals(83, robot.getId());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetSonarReturningNull() throws Throwable  {
        // Given: A new RobotScoreKeeper instance and a new Robot object with ID 1881.
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("net.Xi,tual;nfinity.atrob`ts.com6uter.DebugInfo", 1881, arg2);
        
        // When: The getSonar method is called on the Robot object.
        robot.getSonar();
        
        // Then: The ID of the robot should be equal to 1881 and the round kills should be zero.
        assertEquals(1881, robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testUpdateThrowsNullPointerException() throws Throwable  {
        // Set up a new instance of RobotScoreKeeper
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        
        // Create a new robot object with a given name and position
        Robot robot = new Robot("drbIr.5e", (-1061), arg2);
        
        // Get the last damage taken by the robot
        Duration arg0 = robot.getLastDamageTaken();
        
        // Update the robot's position based on the last damage taken
        try {
        // Try to update the robot's position, which should throw a NullPointerException
        // because the getLastDamageTaken() method returns null
        robot.update(arg0);
        } catch (NullPointerException e) {
        // Verify that the exception is an instance of NullPointerException
        verifyException("net.virtualinfinity.atrobots.arena.Position", e);}
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreateGetRobotInfoInterruptHandler() throws Throwable  {
        // Given a RobotScoreKeeper object and a Robot object with a valid ID
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("1}2/{:&=QmVG:u", (-1281), arg2);
        
        // When the createGetRobotInfoInterruptHandler method is called on the Robot object
        robot.createGetRobotInfoInterruptHandler((MemoryCell) null, (MemoryCell) null, (MemoryCell) null);
        
        // Then the ID of the Robot object should be equal to the given ID
        assertEquals((-1281), robot.getId());
        
        // And the round kills of the Robot object should be 0
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetHardwareBus() throws Throwable  {
        RobotScoreKeeper scoreKeeper = new RobotScoreKeeper();
        Robot robot = new Robot("JLE", 29, scoreKeeper);
        HardwareBus hardwareBus = new HardwareBus();
        robot.setHardwareBus(hardwareBus);
        assertEquals(29, robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetOdometer() throws Throwable  {
        // Create a new RobotScoreKeeper object and assign it to a variable arg0
        RobotScoreKeeper scoreKeeper = new RobotScoreKeeper();
        
        // Copy the value of scoreKeeper into a new variable arg2
        RobotScore robotScore = FinalRobotScore.copyOf(scoreKeeper);
        
        // Create a new Robot object and assign it to a variable robot
        Robot myRobot = new Robot("", 34, robotScore);
        
        // Verify that the getOdometer() method returns the correct value (0)
        assertEquals(0, myRobot.getOdometer());
        
        // Verify that the getId() method returns the correct value (34)
        assertEquals(34, myRobot.getId());
        
        // Verify that the getRoundKills() method returns the correct value (0)
        assertEquals(0, myRobot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testDestructThrowsNullPointerException() throws Throwable  {
        // Given: A RobotScoreKeeper instance
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        
        // And: A robot with a null name
        Robot robot = new Robot(null, 2146679949, arg2);
        
        // When: The robot is destructed
        try {
        robot.destruct();
        fail("Expecting exception: NullPointerException");
        } catch (NullPointerException e) {
        // Then: An exception should be thrown with a null message
        verifyException("net.virtualinfinity.atrobots.robot.Robot", e);}
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetNameReturningEmptyString() throws Throwable  {
        // Given: A new instance of RobotScoreKeeper and a Robot with an ID of 4514
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("", 4514, arg2);
        
        // When: The name and ID of the robot are accessed
        String name = robot.getName();
        int id = robot.getId();
        
        // Then: The name should be an empty string and the ID should be 4514
        assertEquals("", name);
        assertEquals(4514, id);
        
        // And: The round kills of the robot should be 0
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetMineLayer() throws Throwable  {
        // Given a Robot object with a MineLayer and a ScoreKeeper
        int id = 1763;
        Robot robot = new Robot("/", id, new RobotScoreKeeper());
        MineLayer mineLayer = new MineLayer(32767);
        robot.setMineLayer(mineLayer);
        
        // When the method getMineLayer is called on the Robot object
        MineLayer result = robot.getMineLayer();
        
        // Then the correct MineLayer object should be returned
        assertEquals(result, mineLayer);
        
        // And the Robot's id and round kills should be set correctly
        assertEquals(id, robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTurretOffsetSensor() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("", (-1975), arg2);
        robot.getTurretOffsetSensor();
        assertEquals(0, robot.getRoundKills());
        assertEquals((-1975), robot.getId());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreateMissile() throws Throwable  {
        // Create a new robot score keeper
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        
        // Create a new robot with a given ID and position
        Robot robot = new Robot("l4bT8J?Xd", (-3315), arg2);
        
        // Set the angle of the missile launcher to -3315 degrees
        AbsoluteAngle arg0 = AbsoluteAngle.fromRadians((-3315));
        
        // Create a new position with no coordinates
        Position arg1 = new Position();
        
        // Call the createMissile method on the robot with the given arguments
        robot.createMissile(arg0, arg1, (-3315));
        
        // Check that the ID of the robot is -3315
        assertEquals((-3315), robot.getId());
        
        // Check that the number of round kills is 0 (since no rounds have been hit yet)
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetTurret() throws Throwable  {
        // Given a new Robot instance with id 29 and score keeper arg2
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("JLE", 29, arg2);
        
        // When setting the turret to null
        robot.setTurret((Turret) null);
        
        // Then verify that the id is still 29 and round kills is 0
        assertEquals(29, robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetOverburn() throws Throwable  {
        // rollbacked to evosuite
        Robot robot = new Robot("wrl?QkG8", (-1431655765), (RobotScore) null);
        robot.setOverburn(true);
        // Undeclared exception!
        try { 
          robot.armorDepleted();
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("net.virtualinfinity.atrobots.robot.Robot", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRadar() throws Throwable  {
        // Given: A RobotScoreKeeper instance and a RobotScore object with initial values.
        RobotScoreKeeper scoreKeeper = new RobotScoreKeeper();
        RobotScore robotScore = FinalRobotScore.copyOf(scoreKeeper);
        
        // When: Creating a new Robot with the ScoreKeeper and Score objects, and calling getRadar() on it.
        Robot robot = new Robot((String) null, (-866), robotScore);
        robot.getRadar();
        
        // Then: The round kills of the robot should be 0, and its ID should match the initial value passed to the constructor.
        assertEquals(0, robot.getRoundKills());
        assertEquals((-866), robot.getId());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetComputer() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("JLE", 29, arg2);
        robot.getComputer();
        assertEquals(29, robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTotalTiesReturningZero() throws Throwable  {
        // Given a RobotScoreKeeper object
        RobotScoreKeeper scoreKeeper = new RobotScoreKeeper();
        
        // And a Robot object with ID "p5" and round kill count of 1
        Robot robot = new Robot("p5", 1, scoreKeeper);
        
        // When the total ties is requested for the Robot
        int totalTies = robot.getTotalTies();
        
        // Then the value returned should be 0
        assertEquals(0, totalTies);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetShutdownLevelLatchPort() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("", 3041, arg2);
        robot.getShutdownLevelLatchPort();
        assertEquals(3041, robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRoundKills() throws Throwable  {
        // Given a Robot object with an id of -1431655765 and a roundKills value of 0
        Robot robot = new Robot("net.virtualinfinity.atrobots.robot.Robot$3", (-1431655765), new RobotScoreKeeper());
        int roundKills = robot.getRoundKills();
        assertEquals(0, roundKills);
        assertEquals((-1431655765), robot.getId());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetMineLayerReturningNull() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("/", 1763, arg2);
        robot.getMineLayer();
        assertEquals(1763, robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetHardwareBusReturningNull() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("JLE", 29, arg2);
        robot.getHardwareBus();
        assertEquals(29, robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetThrottleReturningNull() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot(")I/=gL{;QG V-Ep", 2146679949, arg2);
        robot.getThrottle();
        assertEquals(0, robot.getRoundKills());
        assertEquals(2146679949, robot.getId());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTransponder() throws Throwable  {
        // Creates a new robot with a transponder and score keeper
        RobotScoreKeeper arg0 = new RobotScoreKeeper();
        RobotScore arg2 = FinalRobotScore.copyOf(arg0);
        Robot robot = new Robot("tu2JbM-", (-2146187812), arg2);
        
        // Verifies that the robot has the correct transponder ID
        assertEquals((-2146187812), robot.getId());
        
        // Verifies that the robot has a round kills of 0
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTotalDeathsReturningZero() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("", 0, arg2);
        robot.getTotalDeaths();
        assertEquals(0, robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetDesiredHeading() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg0 = new RobotScoreKeeper();
        RobotScore arg2 = FinalRobotScore.copyOf(arg0);
        Robot robot = new Robot("XCi6NT~Og,\"{D;*l", 284, arg2);
        robot.getDesiredHeading();
        assertEquals(0, robot.getRoundKills());
        assertEquals(284, robot.getId());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testKilledRobotThrowsNullPointerException() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("", 4091, arg2);
        robot.addRobotListener((RobotListener) null);
        // Undeclared exception!
        try { 
          robot.killedRobot();
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("net.virtualinfinity.atrobots.robot.Robot", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetSpeed() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("=Qlis=Cdf ;0LG^G", 1021, arg2);
        robot.getSpeed();
        assertEquals(0, robot.getRoundKills());
        assertEquals(1021, robot.getId());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAimTurretPort() throws Throwable  {
        // rollbacked to evosuite
        RobotScoreKeeper arg0 = new RobotScoreKeeper();
        RobotScore arg2 = FinalRobotScore.copyOf(arg0);
        Robot robot = new Robot("tu2JbM-", (-2146187812), arg2);
        robot.getAimTurretPort();
        assertEquals((-2146187812), robot.getId());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetLastDamageGiven() throws Throwable  {
        // No Comments were added
        RobotScoreKeeper arg0 = new RobotScoreKeeper();
        RobotScore arg2 = FinalRobotScore.copyOf(arg0);
        Robot robot = new Robot((String) null, (-866), arg2);
        Duration lastDamageGiven = robot.getLastDamageGiven();
        assertEquals((-866), robot.getId());
        assertEquals(0, lastDamageGiven.getCycles());
        assertEquals(0, robot.getRoundKills());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetThrottle() throws Throwable  {
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        Robot robot = new Robot("name", 1, arg2); // Creates a new Robot with the given name and id.
        Throttle arg0 = new Throttle(300); // Creates a new Throttle with the given value.
        robot.setThrottle(arg0); // Sets the throttle of the robot to the given Throttle.
        assertEquals(1, robot.getId()); // Asserts that the id of the robot is equal to 1.
        assertEquals(0, robot.getRoundKills()); // Asserts that the number of round kills of the robot is equal to 0.
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTurret() throws Throwable  {
        // Given a new RobotScoreKeeper instance with a specific ID and an empty score keeper
        RobotScoreKeeper arg2 = new RobotScoreKeeper();
        
        // When creating a new robot with the given ID and score keeper
        Robot robot = new Robot("/", 1763, arg2);
        
        // Then the robot's ID should be set to the given value
        assertEquals(1763, robot.getId());
        
        // And the round kills should be initialized to zero
        assertEquals(0, robot.getRoundKills());
    }
  }
  