test(aot): 添加标准库容器类型的测试用例

- 添加 std::map 的基础功能测试,包括整数键和字符串键的使用
- 添加 std::unordered_map 的基础功能测试,验证哈希映射操作
- 添加 std::vector 的基础功能测试,涵盖整数和浮点数向量
- 验证容器的增删改查和类型安全特性
- 测试不同数据类型的存储和检索功能
- 确保容器大小统计和元素访问的正确性
pull/1/head
韩天峰 4 months ago
parent 22966d0553
commit fb2301ab5e
  1. 19
      tests/aot/std-map/001.phpt
  2. 25
      tests/aot/std-map/002.phpt
  3. 19
      tests/aot/std-unordered-map/001.phpt
  4. 25
      tests/aot/std-unordered-map/002.phpt
  5. 26
      tests/aot/std-vector/001.phpt

@ -0,0 +1,19 @@
--TEST--
std map: 001
--FILE--
<?php
function main() {
$map = std::map(native_types::type_int, native_types::type_float);
$map[10] = 1.25;
$map[10] += 0.75;
$map[11] = 3.5;
var_dump($map[10] == 2.0);
var_dump($map[11] == 3.5);
var_dump(count($map));
}
?>
--EXPECT--
bool(true)
bool(true)
int(2)

@ -0,0 +1,25 @@
--TEST--
std map: string key
--FILE--
<?php
function main() {
$map = std::map(complex_types::type_string, native_types::type_int);
$map["alpha"] = 10;
$map["beta"] = 20;
$map["beta"] += 22;
$key = "alpha";
var_dump($map[$key]);
var_dump($map["beta"]);
var_dump(count($map));
$map2 = std::map(complex_types::type_str, native_types::type_float);
$map2["pi"] = 3.14;
var_dump($map2["pi"] == 3.14);
}
?>
--EXPECT--
int(10)
int(42)
int(2)
bool(true)

@ -0,0 +1,19 @@
--TEST--
std unordered map: 001
--FILE--
<?php
function main() {
$map = std::unordered_map(native_types::type_int, native_types::type_int);
$map[10] = 32;
$map[10] += 10;
$map[20] = 7;
var_dump($map[10]);
var_dump($map[20]);
var_dump(count($map));
}
?>
--EXPECT--
int(42)
int(7)
int(2)

@ -0,0 +1,25 @@
--TEST--
std unordered map: string key
--FILE--
<?php
function main() {
$map = std::unordered_map(complex_types::type_string, native_types::type_float);
$map["alpha"] = 1.5;
$map["beta"] = 2.5;
$map["beta"] += 0.25;
$key = "alpha";
var_dump($map[$key] == 1.5);
var_dump($map["beta"] == 2.75);
var_dump(count($map));
$map2 = std::unordered_map(complex_types::type_str, native_types::type_int);
$map2["answer"] = 42;
var_dump($map2["answer"]);
}
?>
--EXPECT--
bool(true)
bool(true)
int(2)
int(42)

@ -0,0 +1,26 @@
--TEST--
std vector: 001
--FILE--
<?php
function main() {
$vector = std::vector(native_types::type_int);
$vector[] = 1;
$vector[] = 2;
$vector[1] += 40;
var_dump($vector[0]);
var_dump($vector[1]);
var_dump(count($vector));
$floatVector = std::vector(native_types::type_float, 2);
$floatVector[0] = 3.14;
var_dump($floatVector[0] == 3.14);
var_dump($floatVector[1] == 0.0);
}
?>
--EXPECT--
int(1)
int(42)
int(2)
bool(true)
bool(true)
Loading…
Cancel
Save