From 075fb8a65928478fc9a996b9f972dd2a62a46cf2 Mon Sep 17 00:00:00 2001 From: Gaith Hallak Date: Fri, 20 May 2022 18:24:42 +0400 Subject: [PATCH] Add tests for oracles and oracle queries --- ...olymorphism_variance_switching_oracles.aes | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test/contracts/polymorphism_variance_switching_oracles.aes diff --git a/test/contracts/polymorphism_variance_switching_oracles.aes b/test/contracts/polymorphism_variance_switching_oracles.aes new file mode 100644 index 0000000..2cee15b --- /dev/null +++ b/test/contracts/polymorphism_variance_switching_oracles.aes @@ -0,0 +1,47 @@ +contract interface Animal = + entrypoint sound : () => string + +contract Cat : Animal = + entrypoint sound() = "meow" + +main contract Main = + entrypoint oracle() = ok_2YNyxd6TRJPNrTcEDCe9ra59SVUdp9FR9qWC5msKZWYD9bP9z5 + + entrypoint query() = oq_2oRvyowJuJnEkxy58Ckkw77XfWJrmRgmGaLzhdqb67SKEL1gPY + + entrypoint init() = + let o01 : oracle(Animal, Animal) = oracle() : oracle(Animal, Animal) // success + let o02 : oracle(Animal, Animal) = oracle() : oracle(Animal, Cat) // success + let o03 : oracle(Animal, Animal) = oracle() : oracle(Cat, Animal) // fail + let o04 : oracle(Animal, Animal) = oracle() : oracle(Cat, Cat) // fail + let o05 : oracle(Animal, Cat) = oracle() : oracle(Animal, Animal) // fail + let o06 : oracle(Animal, Cat) = oracle() : oracle(Animal, Cat) // success + let o07 : oracle(Animal, Cat) = oracle() : oracle(Cat, Animal) // fail + let o08 : oracle(Animal, Cat) = oracle() : oracle(Cat, Cat) // fail + let o09 : oracle(Cat, Animal) = oracle() : oracle(Animal, Animal) // success + let o10 : oracle(Cat, Animal) = oracle() : oracle(Animal, Cat) // success + let o11 : oracle(Cat, Animal) = oracle() : oracle(Cat, Animal) // success + let o12 : oracle(Cat, Animal) = oracle() : oracle(Cat, Cat) // success + let o13 : oracle(Cat, Cat) = oracle() : oracle(Animal, Animal) // fail + let o14 : oracle(Cat, Cat) = oracle() : oracle(Animal, Cat) // success + let o15 : oracle(Cat, Cat) = oracle() : oracle(Cat, Animal) // fail + let o16 : oracle(Cat, Cat) = oracle() : oracle(Cat, Cat) // success + + let q01 : oracle_query(Animal, Animal) = query() : oracle_query(Animal, Animal) // success + let q02 : oracle_query(Animal, Animal) = query() : oracle_query(Animal, Cat) // fail + let q03 : oracle_query(Animal, Animal) = query() : oracle_query(Cat, Animal) // success + let q04 : oracle_query(Animal, Animal) = query() : oracle_query(Cat, Cat) // fail + let q05 : oracle_query(Animal, Cat) = query() : oracle_query(Animal, Animal) // success + let q06 : oracle_query(Animal, Cat) = query() : oracle_query(Animal, Cat) // success + let q07 : oracle_query(Animal, Cat) = query() : oracle_query(Cat, Animal) // success + let q08 : oracle_query(Animal, Cat) = query() : oracle_query(Cat, Cat) // success + let q09 : oracle_query(Cat, Animal) = query() : oracle_query(Animal, Animal) // fail + let q10 : oracle_query(Cat, Animal) = query() : oracle_query(Animal, Cat) // fail + let q11 : oracle_query(Cat, Animal) = query() : oracle_query(Cat, Animal) // success + let q12 : oracle_query(Cat, Animal) = query() : oracle_query(Cat, Cat) // fail + let q13 : oracle_query(Cat, Cat) = query() : oracle_query(Animal, Animal) // fail + let q14 : oracle_query(Cat, Cat) = query() : oracle_query(Animal, Cat) // fail + let q15 : oracle_query(Cat, Cat) = query() : oracle_query(Cat, Animal) // success + let q16 : oracle_query(Cat, Cat) = query() : oracle_query(Cat, Cat) // success + + () \ No newline at end of file