Files
kraken/tests/test_vectorTest.krak

51 lines
1.3 KiB
Plaintext

import io:*;
import mem:*;
import vector:*;
obj AbleToBeDestroyed (Destructable) {
fun copy_construct(other:AbleToBeDestroyed*):void {
println("Copied!");
}
fun destruct(): void {
println("Destroyed!");
}
};
fun main(): int {
var intVec.construct(): vector<int>;
intVec.addEnd(1);
intVec.addEnd(3);
intVec.addEnd(3);
intVec.addEnd(7);
println(intVec.size);
for (var i: int = 0; i < intVec.size; i++;)
print(intVec.at(i));
println();
// in place lambda map
intVec.in_place(fun(it:int):int { return it*2; })
for (var i: int = 0; i < intVec.size; i++;)
print(intVec.at(i));
println();
intVec.do(fun(it:int):void print(it+7);)
println();
var subd = intVec.map(fun(it:int):int { return it-1; })
for (var i: int = 0; i < subd.size; i++;)
print(subd.at(i));
println();
var newType = intVec.map(fun(it:int):double { return it+1.7; })
for (var i: int = 0; i < newType.size; i++;)
print(newType.at(i));
println();
var desVec: vector<AbleToBeDestroyed>* = new<vector<AbleToBeDestroyed>>()->construct();
var testDestruct: AbleToBeDestroyed;
desVec->addEnd(testDestruct);
delete<vector<AbleToBeDestroyed>>(desVec);
return 0;
}