Runtime assertions for Ruby literal.fun
ruby
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

Begin extracting type tests into their own files

+62 -34
+14
config/quickdraw.rb
··· 39 39 add_group "Properties", "lib/literal/properties.rb" 40 40 end 41 41 end 42 + 43 + class Quickdraw::Test 44 + def assert_subtype(subtype, supertype) 45 + assert Literal.subtype?(subtype, of: supertype) do 46 + "Expected #{subtype.inspect} to be a subtype of #{supertype.inspect}." 47 + end 48 + end 49 + 50 + def refute_subtype(subtype, supertype) 51 + refute Literal.subtype?(subtype, of: supertype) do 52 + "Expected #{subtype.inspect} not to be a subtype of #{supertype.inspect}." 53 + end 54 + end 55 + end
-34
test/types.test.rb
··· 79 79 assert _Boolean >= _Boolean 80 80 end 81 81 82 - test "_Callable" do 83 - assert _Callable === -> {} 84 - assert _Callable === method(:puts) 85 82 86 - refute _Callable === nil 87 - 88 - assert _Callable >= Proc 89 - assert _Callable >= Method 90 - assert _Callable >= _Callable 91 - 92 - assert _Callable >= _Intersection(Object, _Callable) 93 - assert _Callable >= _String(_Callable) 94 - 95 - assert _Callable >= _Interface(:call, :to_s) 96 - 97 - refute _Callable >= String 98 - refute _Callable >= Object 99 - end 100 - 101 - test "_Class" do 102 - assert _Class(Enumerable) === Array 103 - 104 - refute _Class(Enumerable) === [] 105 - refute _Class(Enumerable) === String 106 - refute _Class(Enumerable) === Enumerable 107 - 108 - assert _Class(Enumerable) >= _Class(Array) 109 - assert _Class(Enumerable) >= _Class(Enumerable) 110 - assert _Class(Enumerable) >= _Descendant(Array) 111 - assert _Class(Array) >= _Descendant(Array) 112 - 113 - refute _Class(Enumerable) >= _Descendant(Enumerable) 114 - refute _Class(Enumerable) >= Enumerable 115 - refute _Class(Enumerable) >= Class 116 - end 117 83 118 84 test "_Constraint with object constraints" do 119 85 age_constraint = _Constraint(Integer, 18..)
+26
test/types/_callable.test.rb
··· 1 + # frozen_string_literal: true 2 + 3 + include Literal::Types 4 + 5 + test "===" do 6 + assert _Callable === -> {} 7 + assert _Callable === method(:puts) 8 + 9 + refute _Callable === nil 10 + end 11 + 12 + test "hierarchy" do 13 + assert_subtype _Callable, _Callable 14 + 15 + assert_subtype Proc, _Callable 16 + assert_subtype Method, _Callable 17 + 18 + assert_subtype _String(_Callable), _Callable 19 + assert_subtype _Interface(:call, :to_s), _Callable 20 + 21 + refute_subtype String, _Callable 22 + refute_subtype Object, _Callable 23 + 24 + assert_subtype _Intersection(Object, _Callable), _Callable 25 + refute_subtype _Intersection(Object, String), _Callable 26 + end
+22
test/types/_class.test.rb
··· 1 + # frozen_string_literal: true 2 + 3 + include Literal::Types 4 + 5 + test "===" do 6 + assert _Class(Enumerable) === Array 7 + 8 + refute _Class(Enumerable) === [] 9 + refute _Class(Enumerable) === String 10 + refute _Class(Enumerable) === Enumerable 11 + end 12 + 13 + test "heirarchy" do 14 + assert_subtype _Class(Array), _Class(Enumerable) 15 + assert_subtype _Class(Enumerable), _Class(Enumerable) 16 + assert_subtype _Descendant(Array), _Class(Enumerable) 17 + assert_subtype _Descendant(Array), _Class(Array) 18 + 19 + refute_subtype _Descendant(Enumerable), _Class(Enumerable) 20 + refute_subtype Enumerable, _Class(Enumerable) 21 + refute_subtype Class, _Class(Enumerable) 22 + end
test/types/predicate_type.test.rb test/types/_predicate.test.rb