content: /*
   * This file was automatically generated by UTestGen and EvoSuite
   * Wed Mar 20 21:00:05 GMT 2024
   */
  
  package com.allenstudio.ir.util;
  
  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.shaded.org.mockito.Mockito.*;
  import com.allenstudio.ir.util.XmlElement;
  import java.util.Enumeration;
  import java.util.Hashtable;
  import java.util.List;
  import java.util.Observer;
  import org.evosuite.runtime.EvoRunner;
  import org.evosuite.runtime.EvoRunnerParameters;
  import org.evosuite.runtime.ViolatedAssumptionAnswer;
  import org.junit.runner.RunWith;
  
  @RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, separateClassLoader = true) 
  public class XmlElement_Original_ESTest extends XmlElement_Original_ESTest_scaffolding {
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRemoveElementTakingIntReturningXmlElementWhereCountIsZero() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        XmlElement addSubElement = xmlElement.addSubElement("ky1)");
        XmlElement removeElement = xmlElement.removeElement(0);
        assertSame(removeElement, addSubElement);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRemoveElementTakingIntReturningXmlElementWhereCountIsPositive() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.addSubElement("%fi6\".`w@{");
        xmlElement.removeElement(0);
        assertEquals(0, xmlElement.count());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetParentReturningXmlElementWhereCountObserversIsPositive() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        Observer arg0 = mock(Observer.class, new ViolatedAssumptionAnswer());
        xmlElement.addObserver(arg0);
        XmlElement addSubElement = xmlElement.addSubElement("HW", "IukNr+6U~zF");
        assertNotNull(addSubElement);
        
        XmlElement parent = addSubElement.getParent();
        assertNotNull(parent);
        assertEquals(1, parent.count());
        assertEquals("IukNr+6U~zF", addSubElement.getData());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetParent() throws Throwable  {
        XmlElement xmlElement = new XmlElement("WC;C_,*");
        XmlElement addSubElement = xmlElement.addSubElement("WC;C_,*");
        XmlElement parent = addSubElement.getParent();
        assertEquals(1, parent.count());
        assertNotNull(parent);
        assertEquals("WC;C_,*", addSubElement.getName());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetNameReturningNull() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        String name = xmlElement.getName();
        assertNull(name);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetNameReturningEmptyString() throws Throwable  {
        Hashtable<String, String> arg1 = new Hashtable<String, String>();
        XmlElement xmlElement = new XmlElement("", arg1);
        String name = xmlElement.getName();
        assertEquals("", name);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetElementsReturningNull() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.subElements = null;
        List elements = xmlElement.getElements();
        assertNull(elements);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetElementsReturningListWhereIsEmptyIsFalse() throws Throwable  {
        XmlElement xmlElement = new XmlElement("|]");
        XmlElement addSubElement = xmlElement.addSubElement("", "|]");
        assertNotNull(addSubElement);
        assertEquals("|]", addSubElement.getData());
        
        xmlElement.getElements();
        assertEquals("", xmlElement.getData());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetElementTakingStringReturningXmlElementWhereCountObserversIsPositive() throws Throwable  {
        XmlElement xmlElement = new XmlElement("WC;C_,*");
        XmlElement addSubElement = xmlElement.addSubElement("WC;C_,*");
        assertNotNull(addSubElement);
        
        Observer arg0 = mock(Observer.class, new ViolatedAssumptionAnswer());
        addSubElement.addObserver(arg0);
        XmlElement element = xmlElement.getElement("WC;C_,*");
        assertNotNull(element);
        assertEquals(1, element.countObservers());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetElementTakingIntReturningXmlElementWhereCountIsZero() throws Throwable  {
        XmlElement xmlElement = new XmlElement("ky1)");
        XmlElement addSubElement = xmlElement.addSubElement("ky1)");
        assertEquals(1, xmlElement.count());
        
        xmlElement.getElement(0);
        assertNotSame(xmlElement, addSubElement);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetElementTakingIntReturningXmlElementWhereCountIsPositive() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.addSubElement("i6\"o.`wl@{7eM");
        xmlElement.getElement(0);
        assertEquals(1, xmlElement.count());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetDataReturningNull() throws Throwable  {
        Hashtable<String, String> arg1 = new Hashtable<String, String>();
        XmlElement xmlElement = new XmlElement("", arg1);
        String data = xmlElement.getData();
        assertNull(data);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAttributesReturningHashtableWhereIsEmptyIsFalse() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.addAttribute("", "");
        Hashtable<String, String> attributes = xmlElement.getAttributes();
        assertFalse(attributes.isEmpty());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAttributeTakingStringReturningNonEmptyString() throws Throwable  {
        Hashtable<String, String> arg1 = new Hashtable<String, String>();
        XmlElement xmlElement = new XmlElement("#eS=WC4B:7Ps", arg1);
        xmlElement.getAttribute("z=!o3p", "ky1)");
        String attribute = xmlElement.getAttribute("z=!o3p");
        assertEquals(1, arg1.size());
        assertEquals("ky1)", attribute);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAttributeTakingStringReturningEmptyString() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.addAttribute("", "");
        String attribute = xmlElement.getAttribute("");
        assertEquals("", attribute);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddAttributeReturningNonNull() throws Throwable  {
        Hashtable<String, String> arg1 = new Hashtable<String, String>();
        XmlElement xmlElement = new XmlElement("s9", arg1);
        xmlElement.getAttribute("", "s9");
        xmlElement.addAttribute("", "s9");
        assertFalse(arg1.isEmpty());
        assertEquals(1, arg1.size());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddSubElementTakingXmlElement() throws Throwable  {
        Hashtable<String, String> arg1 = new Hashtable<String, String>();
        XmlElement arg0 = new XmlElement("", arg1);
        arg0.addSubElement(arg0);
        XmlElement element = arg0.getElement("");
        assertEquals(1, element.count());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesXmlElementTaking2ArgumentsAndCallsRemoveFromParent() throws Throwable  {
        Hashtable<String, String> arg1 = new Hashtable<String, String>();
        XmlElement xmlElement = new XmlElement("", arg1);
        xmlElement.removeFromParent();
        assertNull(xmlElement.getData());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetNameReturningNonEmptyString() throws Throwable  {
        XmlElement xmlElement = new XmlElement(".EGQIF]oEY)voX//", ".EGQIF]oEY)voX//");
        String name = xmlElement.getName();
        assertEquals(".EGQIF]oEY)voX//", name);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetData() throws Throwable  {
        Hashtable<String, String> arg1 = new Hashtable<String, String>();
        XmlElement xmlElement = new XmlElement("2.c.yjp", arg1);
        xmlElement.setData("");
        String data = xmlElement.getData();
        assertEquals("", data);
        assertNotNull(data);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetElementsReturningListWhereIsEmptyIsTrueAndListWhereSizeIsZero() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        List elements = xmlElement.getElements();
        assertEquals(0, elements.size());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetDataReturningNonEmptyString() throws Throwable  {
        XmlElement xmlElement = new XmlElement("com.allenstudio.ir.util.XmlElement", "com.allenstudio.ir.util.XmlElement");
        String data = xmlElement.getData();
        assertEquals("com.allenstudio.ir.util.XmlElement", data);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetParent() throws Throwable  {
        XmlElement arg0 = new XmlElement("~yf7", "Could not clone XmlElement: ");
        arg0.setParent(arg0);
        XmlElement parent = arg0.getParent();
        assertEquals("Could not clone XmlElement: ", parent.getData());
        assertNotNull(parent);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesXmlElementTaking2ArgumentsAndCallsHashCode0() throws Throwable  {
        XmlElement xmlElement = new XmlElement((String) null, (String) null);
        xmlElement.subElements = null;
        xmlElement.hashCode();
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesXmlElementTaking2ArgumentsAndCallsHashCode1() throws Throwable  {
        XmlElement xmlElement = new XmlElement("", "");
        xmlElement.hashCode();
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesXmlElementTakingNoArgumentsAndCallsHashCode() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.attributes = null;
        xmlElement.hashCode();
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndAddSubElementTakingString() throws Throwable  {
        XmlElement xmlElement = new XmlElement("WC;C_,*");
        XmlElement arg0 = xmlElement.addSubElement("WC;C_,*");
        boolean equals = xmlElement.equals(arg0);
        assertEquals(1, xmlElement.count());
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddAttributeWithNonEmptyString() throws Throwable  {
        XmlElement xmlElement = new XmlElement("Could not clone XmlElement: ", "g");
        Object arg0 = xmlElement.clone();
        assertTrue(arg0.equals((Object)xmlElement));
        
        xmlElement.addAttribute("Could not clone XmlElement: ", "g");
        boolean equals = xmlElement.equals(arg0);
        assertFalse(arg0.equals((Object)xmlElement));
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesXmlElementTakingNoArgumentsAndCallsEquals() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        boolean equals = xmlElement.equals("c7=4rG6&a~_W[A9mM");
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsWithNull() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        boolean equals = xmlElement.equals((Object) null);
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesXmlElementTaking2ArgumentsAndCallsEquals() throws Throwable  {
        Hashtable<String, String> arg1 = new Hashtable<String, String>();
        XmlElement xmlElement = new XmlElement("WC;C_,*", arg1);
        XmlElement arg0 = new XmlElement();
        boolean equals = xmlElement.equals(arg0);
        assertFalse(arg0.equals((Object)xmlElement));
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEquals() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        XmlElement arg0 = new XmlElement("");
        boolean equals = xmlElement.equals(arg0);
        assertFalse(equals);
        assertFalse(arg0.equals((Object)xmlElement));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsReturningTrue() throws Throwable  {
        Hashtable<String, String> arg1 = new Hashtable<String, String>();
        XmlElement arg0 = new XmlElement("", arg1);
        boolean equals = arg0.equals(arg0);
        assertTrue(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testClone() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.addSubElement("i6\"o:.m8wlR@{7eM");
        xmlElement.clone();
        assertEquals(1, xmlElement.count());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesXmlElementTakingNoArgumentsAndCallsClone() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.subElements = null;
        Object clone = xmlElement.clone();
        assertNotSame(clone, xmlElement);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddSubElementTakingXmlElementReturningXmlElementWhereCountIsZero() throws Throwable  {
        XmlElement arg0 = new XmlElement();
        XmlElement clone = (XmlElement)arg0.clone();
        assertNotNull(clone);
        
        clone.addSubElement(arg0);
        assertFalse(clone.equals((Object)arg0));
        assertNotSame(clone, arg0);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesXmlElementTaking2ArgumentsAndCallsClone() throws Throwable  {
        XmlElement xmlElement = new XmlElement("?h+Xu", (Hashtable<String, String>) null);
        Object clone = xmlElement.clone();
        assertNotSame(clone, xmlElement);
        assertNotNull(clone);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddSubElementTaking2ArgumentsWithEmptyString() throws Throwable  {
        XmlElement arg0 = new XmlElement();
        XmlElement addSubElement = arg0.addSubElement("", "");
        assertNotNull(addSubElement);
        
        XmlElement.printNode(arg0, "Q$RNq`|+%w_");
        assertNotSame(arg0, addSubElement);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAttributeTaking2Arguments() throws Throwable  {
        XmlElement arg0 = new XmlElement();
        arg0.getAttribute("s~", "s~");
        XmlElement.printNode(arg0, "s~");
        assertNull(arg0.getData());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesXmlElementTaking2ArgumentsAndCallsPrintNode() throws Throwable  {
        XmlElement arg0 = new XmlElement("j72e^2]uqOXz~>@Q&4", "j72e^2]uqOXz~>@Q&4");
        XmlElement.printNode(arg0, "j72e^2]uqOXz~>@Q&4");
        assertEquals(0, arg0.countObservers());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesXmlElementTaking2ArgumentsAndCallsAddSubElementTakingString() throws Throwable  {
        Hashtable<String, String> arg1 = new Hashtable<String, String>();
        XmlElement xmlElement = new XmlElement("", arg1);
        xmlElement.addSubElement("com.allenstudio.ir.util.XmlElement");
        xmlElement.addSubElement("com.allenstudio.ir.util.XmlElement");
        assertEquals(1, xmlElement.count());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesXmlElementTakingNoArgumentsAndCallsAddSubElementTakingString() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.addSubElement(".w 4r{wu>(");
        assertEquals(1, xmlElement.count());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddSubElementTaking2Arguments() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        XmlElement addSubElement = xmlElement.addSubElement("J33g.%*^M|[", "J33g.%*^M|[");
        assertNotNull(addSubElement);
        assertEquals("J33g.%*^M|[", addSubElement.getData());
        
        XmlElement element = xmlElement.getElement("J33g.%*^M|[");
        assertNotSame(xmlElement, addSubElement);
        assertNull(element);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetElementTakingStringReturningXmlElementWhereHasChangedIsFalse() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.addSubElement("7SKC4|SUx.3ve:");
        xmlElement.getElement("7SKC4|SUx.3ve:");
        assertEquals(1, xmlElement.count());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetElementTakingStringReturningNull() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        XmlElement element = xmlElement.getElement(".EGQIF]oEY)voX//");
        assertNull(element);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesXmlElementTakingNoArgumentsAndCallsRemoveFromParent() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.parent = xmlElement;
        xmlElement.removeFromParent();
        assertEquals(0, xmlElement.count());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRemoveElementTakingXmlElementReturningXmlElementWhereCountIsZero() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        XmlElement arg0 = xmlElement.addSubElement("cK-,%%");
        assertEquals(1, xmlElement.count());
        
        xmlElement.removeElement(arg0);
        assertEquals(0, xmlElement.count());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRemoveElementTakingXmlElement() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        XmlElement arg0 = xmlElement.addSubElement("com.allenstudio.ir.util.XmlElement");
        xmlElement.removeElement(arg0);
        assertEquals(1, xmlElement.count());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRemoveElementTakingXmlElementReturningNull() throws Throwable  {
        XmlElement arg0 = new XmlElement();
        XmlElement removeElement = arg0.removeElement(arg0);
        assertNull(removeElement);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAttributeTaking2ArgumentsReturningNull() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        String attribute = xmlElement.getAttribute("lxZ(j)", (String) null);
        assertNull(attribute);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAttributeTaking2ArgumentsReturningEmptyString() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.addAttribute("", "");
        String attribute = xmlElement.getAttribute("", "f3Sc");
        assertEquals("", attribute);
        assertNotNull(attribute);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddAttribute() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        Object addAttribute = xmlElement.addAttribute((String) null, "");
        assertNull(addAttribute);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddAttributeWithNull() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        Object addAttribute = xmlElement.addAttribute((String) null, (String) null);
        assertNull(addAttribute);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetName() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.setName("r2Cj5>?R@<):WS|H34");
        assertNull(xmlElement.getData());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppend() throws Throwable  {
        XmlElement arg0 = new XmlElement();
        arg0.append(arg0);
        assertNull(arg0.getData());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testInsertElement() throws Throwable  {
        XmlElement arg0 = new XmlElement("~yf7", "Could not clone XmlElement: ");
        arg0.insertElement(arg0, 0);
        assertEquals("Could not clone XmlElement: ", arg0.getData());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testNotifyObservers() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.notifyObservers();
        assertEquals(0, xmlElement.count());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddElement() throws Throwable  {
        XmlElement arg0 = new XmlElement();
        boolean addElement = arg0.addElement(arg0);
        assertTrue(addElement);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetParentReturningNull() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        XmlElement parent = xmlElement.getParent();
        assertNull(parent);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCountReturningPositive() throws Throwable  {
        XmlElement xmlElement = new XmlElement("FPp{[p8'L9U{");
        XmlElement addSubElement = xmlElement.addSubElement("_JI~", "_JI~");
        assertEquals("_JI~", addSubElement.getName());
        assertEquals("_JI~", addSubElement.getData());
        assertNotNull(addSubElement);
        
        xmlElement.count();
        assertEquals("", xmlElement.getData());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesXmlElementTakingStringAndCallsPrintNode() throws Throwable  {
        XmlElement arg0 = new XmlElement(":");
        XmlElement.printNode(arg0, ":");
        assertEquals("", arg0.getData());
        assertEquals(":", arg0.getName());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRemoveAllElements() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        xmlElement.removeAllElements();
        assertEquals(0, xmlElement.count());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAttributeNames() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        Enumeration attributeNames = xmlElement.getAttributeNames();
        assertNotNull(attributeNames);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetAttributes() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        Hashtable<String, String> arg0 = xmlElement.getAttributes();
        xmlElement.setAttributes(arg0);
        assertTrue(arg0.isEmpty());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAttributeTakingStringReturningNull() throws Throwable  {
        XmlElement xmlElement = new XmlElement("'[#|BD*R", "'[#|BD*R");
        String attribute = xmlElement.getAttribute("");
        assertNull(attribute);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCountReturningZero() throws Throwable  {
        XmlElement xmlElement = new XmlElement();
        int count = xmlElement.count();
        assertEquals(0, count);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetAttributesReturningNull() throws Throwable  {
        XmlElement xmlElement = new XmlElement("", (Hashtable<String, String>) null);
        Hashtable<String, String> attributes = xmlElement.getAttributes();
        assertNull(attributes);
    }
  }
  