<?php

require "tests.php";

// Setting a variable that is a reference to an array copies into the array it refers to.
check::equal(numbers_sum(), 10, "numbers_sum");
check::set("numbers_ref", others_address());
check::equal(numbers_sum(), 100, "numbers_sum after set");

// An array of char is a string here, and so is a reference to one.
check::equal(check::get("letters"), "abc", "letters");
check::equal(check::get("letters_ref"), "abc", "letters_ref");
check::set("letters_ref", "xy");
check::equal(letters_are(), "xy", "letters_are");
check::equal(check::get("frozen_ref"), "xyz", "frozen_ref");

// A reference to an array of char cannot be null.
check::equal(length_of("abc"), 3, "length_of");
try {
  length_of(null);
  check::fail("length_of(null) did not throw");
} catch (TypeError $e) {
}

$member = new ArrayRefMember();
check::equal($member->sum(), 10, "member sum");
check::equal($member->text_ref, "hi", "member text_ref");
$member->text_ref = "bye";
check::equal($member->text_is(), "bye", "member text_is");

check::done();
