input: Write a function that initializes a Vector3D class with attributes x, y, and z, and returns a string representation of the vector in the format "(x, y, z)". Additionally, create test cases to validate the function.
  
  
  class Vector3D:
      def __init__(self, x, y, z):
          self.x = x
          self.y = y
          self.z = z
      
      def __str__(self):
          return "(" + str(self.x) + ", " + str(self.y) + ", " + str(self.z) + ")"
  
  # Test cases
  assert str(Vector3D(1, 2, 3)) == "(1, 2, 3)"
  assert str(Vector3D(0, 0, 0)) == "(0, 0, 0)"
  assert str(Vector3D(-1, -2, -3)) == "(-1, -2, -3)"
  assert str(Vector3D(1.5, 2.5, 3.5)) == "(1.5, 2.5, 3.5)"
  assert str(Vector3D(0, -2, 3)) == "(0, -2, 3)"
  
output: def __str__(self):
      return "(" + str(self.x) + ", " + str(self.y) + ", " + str(self.z) + ")"