#!/usr/bin/ruby
#
## Test Object.dclone() on cyclic references
#
var src = Hash(foo => 0, bar => [0,1])
# Add a cyclic reference
src{:baz} = src
# Make a deep clone
var dst = src.dclone
# The address of src
assert_eq(src.object_id, src{:baz}.object_id)
assert_ne(src.object_id, 0)
# The address of dst
assert_eq(dst.object_id, dst{:baz}.object_id)
assert_ne(dst.object_id, 0)
assert_ne(src.object_id, dst.object_id)
say "** Test passed!"