///|
fn main {
  let default_namespace =
    #|urn:entry:demoMoonFeed2026-10-20T12:00:00ZMoonBitHello
  let explicit_prefix =
    #|urn:entry:demoMoonFeed2026-10-20T12:00:00ZMoonBitHello
  try {
    match
      (
        @moonfeed.parse_atom_document(default_namespace),
        @moonfeed.parse_atom_document(explicit_prefix),
      ) {
      (
        @moonfeed.AtomDocument::EntryDocument(a),
        @moonfeed.AtomDocument::EntryDocument(b),
      ) => {
        assert_eq(a.metadata.id, b.metadata.id)
        assert_eq(
          a.metadata.title.unwrap().value,
          b.metadata.title.unwrap().value,
        )
        assert_eq(
          a.metadata.updated.unwrap().raw,
          b.metadata.updated.unwrap().raw,
        )
        assert_eq(
          a.metadata.updated.unwrap().unix_seconds,
          b.metadata.updated.unwrap().unix_seconds,
        )
        assert_eq(a.effective_authors[0].name, b.effective_authors[0].name)
        assert_eq(
          a.metadata.links[0].href.resolved,
          b.metadata.links[0].href.resolved,
        )
        assert_eq(a.content.unwrap().value, b.content.unwrap().value)
        println("Equivalent Entry Documents: PASS")
        println(a.metadata.id.unwrap())
        println(a.metadata.links[0].href.raw)
        println(a.metadata.links[0].href.resolved)
      }
      _ => abort("expected two Entry Documents")
    }
  } catch {
    _ => abort("Atom document validation failed")
  }
}