Skip to content

Commit 0a03d65

Browse files
committed
Update test cases in Cairo, fix typos
1 parent 9a0fc39 commit 0a03d65

File tree

9 files changed

+46
-256
lines changed

9 files changed

+46
-256
lines changed

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@ from codefordao.utils.array import Array
3939
Array.save(
4040
arr_len: felt,
4141
arr: felt*
42-
) -> (key: ArrayInfo.key)
42+
) -> (key: felt)
4343

4444
Array.get_item(
45-
key: ArrayInfo.key,
45+
key: felt,
4646
index: felt
4747
) -> (res: felt)
4848

4949
Array.get_array(
50-
key: ArrayInfo.key,
50+
key: felt,
5151
) -> (
5252
arr_len: felt,
5353
arr: felt*

pytest.ini

-3
This file was deleted.

requirements.txt

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
wheel
22
cairo-lang
3-
cairo-nile
4-
pytest-cairo
5-
tox
3+
cairo-nile

setup.cfg

+3-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[metadata]
22
name = cairo-array-utils
33
version = attr: cairo-array-utils.__version__
4-
description = Array helpers in Cairo.
4+
description = a set of useful functions utils for manipulating arrays in Cairo lang
55
author = GUO Yu
66
author_email = [email protected]
77
license = MIT
@@ -13,6 +13,7 @@ classifiers =
1313
Operating System :: OS Independent
1414

1515
[options]
16+
python_requires = >=3.7
1617
zip_safe = False
1718
packages = find_namespace:
1819
include_package_data = True
@@ -28,10 +29,4 @@ exclude =
2829
tests
2930

3031
[options.package_data]
31-
codefordao = "*.cairo"
32-
33-
[options.extras_require]
34-
testing =
35-
setuptools
36-
tox
37-
pytest
32+
codefordao = "*.cairo"

src/codefordao/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
import importlib_metadata
77

88
try:
9-
__version__ = importlib_metadata.version("checksfinance-soulmoment")
9+
__version__ = importlib_metadata.version("cairo-array-utils")
1010
except importlib_metadata.PackageNotFoundError:
1111
__version__ = None

src/codefordao/utils/array.cairo

+11-9
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func _arrays(key: felt, index: felt) -> (res: felt):
1919
end
2020
2121
@storage_var
22-
func _array_info(key: felt) -> (slot: ArrayInfo):
22+
func _array_info(key: felt) -> (res: ArrayInfo):
2323
end
2424
2525
namespace Array:
@@ -32,14 +32,16 @@ namespace Array:
3232
arr_len: felt,
3333
arr: felt*
3434
) -> (key: felt):
35+
alloc_locals
36+
3537
with_attr error_message("Arrays.push: invalid length of giving array"):
3638
assert arr_len = 0
3739
end
3840
39-
let (k) = _array_key_index.read()
41+
let (local k) = _array_key_index.read()
4042
let info = ArrayInfo(key=k, len=arr_len)
4143
42-
_array_info.write(key=k, slot=info)
44+
_array_info.write(key=k, value=info)
4345
_write_array(key=k, arr_index=0, arr_len=arr_len, arr=arr)
4446
_array_key_index.write(k + 1)
4547
@@ -68,16 +70,16 @@ namespace Array:
6870
arr: felt*
6971
):
7072
alloc_locals
73+
7174
let (arr) = alloc()
72-
let (arr_info) = _array_info.read(key)
73-
let (arr_len) = arr_info.len
75+
let (local arr_info) = _array_info.read(key)
7476
75-
if arr_len == 0:
76-
return (arr_len=arr_len, arr=arr)
77+
if arr_info.len == 0:
78+
return (arr_len=arr_info.len, arr=arr)
7779
end
7880
79-
_read_array(key=key, arr_index=0, arr_len=arr_len, arr=arr)
80-
return (arr_len=arr_len, arr=arr)
81+
_read_array(key=key, arr_index=0, arr_len=arr_info.len, arr=arr)
82+
return (arr_len=arr_info.len, arr=arr)
8183
end
8284
8385
# Store arrays into multi-dimensional maps by recursion
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
%lang starknet
2+
3+
from starkware.cairo.common.cairo_builtins import HashBuiltin
4+
from starkware.cairo.common.alloc import alloc
5+
from src.codefordao.utils.array import Array
6+
7+
@view
8+
func test_array_utils{syscall_ptr : felt*, pedersen_ptr : HashBuiltin*, range_check_ptr}():
9+
alloc_locals
10+
11+
let (local array : felt*) = alloc()
12+
assert array[0] = 1
13+
assert array[1] = 2
14+
assert array[2] = 3
15+
assert array[3] = 4
16+
17+
let (arr_key) = Array.save(4, array)
18+
let (local arr_len: felt, local arr : felt*) = Array.get_array(arr_key)
19+
20+
assert 1 = arr[0]
21+
assert 2 = arr[1]
22+
assert 3 = arr[2]
23+
assert 4 = arr[3]
24+
assert 4 = arr_len
25+
26+
return ()
27+
end

tests/test_array_utils.py

-16
This file was deleted.

tests/utils.py

-213
This file was deleted.

0 commit comments

Comments
 (0)