Promotion.vala 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using Invercargill;
  2. using Invercargill.DataStructures;
  3. void promotion_tests() {
  4. Test.add_func("/invercargill/promotions/uint8_to_binarydata", () => {
  5. var data = new Vector<uint8>();
  6. data.add(1);
  7. data.add(9);
  8. data.add(7);
  9. var base64 = data.assert_promotion<BinaryData>().to_base64();
  10. assert_cmpstr("AQAA", CompareOperator.EQ, base64);
  11. });
  12. Test.add_func("/invercargill/promotions/binarydata_to_binarydata", () => {
  13. var data = (Enumerable<uint8>)new BinaryData.from_base64("AQAA");
  14. var new_data = data.assert_promotion<BinaryData>();
  15. assert_true(data == new_data);
  16. });
  17. Test.add_func("/invercargill/promotions/sticky", () => {
  18. try {
  19. var sum = range(0, 10000, 1)
  20. .promote_to<Signed32BitIntegers>()
  21. .where(i => i % 2 != 0)
  22. .sum();
  23. assert_cmpint(sum, CompareOperator.EQ, 25000000);
  24. }
  25. catch (Error e) {
  26. assert_no_error(e);
  27. }
  28. });
  29. }