MCPcopy Index your code
hub / github.com/endbasic/endbasic / check_array_dims

Method check_array_dims

std/src/testutils.rs:1016–1046  ·  view source on GitHub ↗
(&self, name: &SymbolKey, dimensions: &[usize])

Source from the content-addressed store, hash-verified

1014 }
1015
1016 fn check_array_dims(&self, name: &SymbolKey, dimensions: &[usize]) {
1017 if dimensions.is_empty() {
1018 panic!("Expected array {} must have at least one dimension", name);
1019 }
1020
1021 let mut subscripts = vec![0; dimensions.len()];
1022 for i in 0..dimensions.len() {
1023 subscripts[i] = dimensions[i] as i32;
1024 match self.machine.vm.get_global_array(&self.machine.image, name, &subscripts) {
1025 Err(GetGlobalError::SubscriptOutOfBounds(_)) => (),
1026 Ok(None) => {
1027 match self.machine.vm.get_program_array(&self.machine.image, name, &subscripts)
1028 {
1029 Err(GetGlobalError::SubscriptOutOfBounds(_)) => (),
1030 Ok(Some(_)) => panic!(
1031 "Expected array {} dimension {} to be {} but found larger",
1032 name, i, dimensions[i]
1033 ),
1034 Ok(None) => panic!("Expected array {} not defined", name),
1035 Err(e) => panic!("Expected array {} has wrong shape: {}", name, e),
1036 }
1037 }
1038 Ok(Some(_)) => panic!(
1039 "Expected array {} dimension {} to be {} but found larger",
1040 name, i, dimensions[i]
1041 ),
1042 Err(e) => panic!("Expected array {} has wrong shape: {}", name, e),
1043 }
1044 subscripts[i] = 0;
1045 }
1046 }
1047
1048 fn check_array(&self, name: &SymbolKey, exp_array: &ExpArray) {
1049 let mut exp_contents = HashMap::with_capacity(exp_array.contents.len());

Callers 1

check_arrayMethod · 0.80

Calls 4

get_global_arrayMethod · 0.80
get_program_arrayMethod · 0.80
is_emptyMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected