///|
fn graph_json() -> String {
  "{\"type\":\"bundle\",\"id\":\"bundle--00000000-0000-4000-8000-000000000002\",\"objects\":[" +
  "{\"type\":\"file\",\"spec_version\":\"2.1\",\"id\":\"file--e9a0f947-b0cf-4e0c-95ed-3c92d4374835\",\"name\":\"dropper.exe\",\"hashes\":{\"SHA-256\":\"aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f\"}}," +
  "{\"type\":\"observed-data\",\"spec_version\":\"2.1\",\"id\":\"observed-data--b67d7432-e4de-411a-9e73-10f79adb4ad0\",\"created\":\"2024-01-01T00:00:00.000Z\",\"modified\":\"2024-01-01T00:00:00.000Z\",\"first_observed\":\"2024-01-01T00:00:00Z\",\"last_observed\":\"2024-01-01T00:05:00Z\",\"number_observed\":3,\"object_refs\":[\"file--e9a0f947-b0cf-4e0c-95ed-3c92d4374835\"]}," +
  "{\"type\":\"indicator\",\"spec_version\":\"2.1\",\"id\":\"indicator--8e2e2d2b-17d4-4cbf-938f-98ee46b3cd3f\",\"created\":\"2024-01-01T00:00:00.000Z\",\"modified\":\"2024-01-01T00:00:00.000Z\",\"name\":\"dropper hash\",\"pattern\":\"[file:hashes.'SHA-256' = 'aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f']\",\"pattern_type\":\"stix\",\"valid_from\":\"2024-01-01T00:00:00Z\"}," +
  "{\"type\":\"sighting\",\"spec_version\":\"2.1\",\"id\":\"sighting--ee20065d-2555-424f-ad9e-0f8424083eb8\",\"created\":\"2024-01-01T00:00:00.000Z\",\"modified\":\"2024-01-01T00:00:00.000Z\",\"count\":3,\"sighting_of_ref\":\"indicator--8e2e2d2b-17d4-4cbf-938f-98ee46b3cd3f\",\"observed_data_refs\":[\"observed-data--b67d7432-e4de-411a-9e73-10f79adb4ad0\"]}" +
  "]}"
}

///|
fn main raise {
  let parsed = @stix.parse_and_validate(graph_json()).unwrap()
  let issues = parsed.1
  println("issues=\{issues.length()}")
  let objects = @stix.document_objects(parsed.0)
  let mut files = 0
  let mut sightings = 0
  for i = 0; i < objects.length(); i = i + 1 {
    if objects[i].stix_type == "file" {
      files += 1
    }
    if objects[i].stix_type == "sighting" {
      sightings += 1
    }
  }
  println("files=\{files}")
  println("sightings=\{sightings}")
  if issues.length() != 0 || files != 1 || sightings != 1 {
    assert_true(false)
  }
}