Skip to content

Commit d7497ba

Browse files
committed
bug fxied, readme upd
1 parent d6fda48 commit d7497ba

2 files changed

Lines changed: 59 additions & 1 deletion

File tree

README.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ var_dump($range[2]); // 5
4444
try {
4545
$range[3];
4646
} catch(OutOfRangeException $e) {
47+
echo "cannot get value from index out of range\n";
4748
}
4849

4950
var_dump($range[-1]); // 5
@@ -76,6 +77,63 @@ foreach($range as $value) {
7677
// out: 1.1 3.2 5.3
7778
```
7879

80+
#### Exponential
81+
82+
```php
83+
use Smoren\Sequence\Structs\IntExponential;
84+
use Smoren\Sequence\Structs\FloatExponential;
85+
86+
/* Simple int exponential sequence */
87+
$sequence = new IntRange(1, 4, 2); // (from, size, step)
88+
var_dump($sequence->isInfinite()); // false
89+
90+
foreach($sequence as $value) {
91+
echo "{$value} ";
92+
}
93+
// out: 1 2 4 8
94+
95+
var_dump($sequence[0]); // 1
96+
var_dump($sequence[1]); // 2
97+
var_dump($sequence[2]); // 4
98+
var_dump($sequence[3]); // 8
99+
100+
try {
101+
$sequence[4];
102+
} catch(OutOfRangeException $e) {
103+
echo "cannot get value from index out of range\n";
104+
}
105+
106+
var_dump($sequence[-1]); // 8
107+
var_dump($sequence[-2]); // 4
108+
var_dump($sequence[-3]); // 2
109+
var_dump($sequence[-4]); // 1
110+
111+
try {
112+
$sequence[-5];
113+
} catch(OutOfRangeException $e) {
114+
echo "cannot get value from index out of range\n";
115+
}
116+
117+
/* Infinite int exponential sequence */
118+
$sequence = new IntExponential(1, null, 2);
119+
var_dump($sequence->isInfinite()); // true
120+
121+
foreach($sequence as $i => $value) {
122+
echo "{$value} ";
123+
if($i > 100) break;
124+
}
125+
// out: 1 2 4 8 16 32 64...
126+
127+
/* Infinite float exponential sequence */
128+
$sequence = new FloatRange(0.5, null, 2);
129+
var_dump($sequence->isInfinite()); // true
130+
131+
foreach($sequence as $value) {
132+
echo "{$value} ";
133+
}
134+
// out: 0.5 0.25 0.125...
135+
```
136+
79137
#### IndexedArray
80138

81139
```php

src/Structs/IndexedArray.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class IndexedArray implements IndexedArrayInterface
2424
*/
2525
public function __construct(array $source = [])
2626
{
27-
$this->source = $source;
27+
$this->source = array_values($source);
2828
}
2929

3030
/**

0 commit comments

Comments
 (0)