Runtime assertions for Ruby literal.fun
ruby
at main 31 lines 853 B view raw
1# frozen_string_literal: true 2 3include Literal::Types 4 5test "with named params" do 6 pattern = _Pattern(/\A(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})\z/) do |year:, month:, day:| 7 year.to_i >= 2000 && month.to_i.between?(1, 12) && day.to_i.between?(1, 31) 8 end 9 10 assert pattern === "2023-04-15" 11 assert pattern === "2050-01-01" 12 13 refute pattern === "1999-12-31" 14 refute pattern === "2023-13-01" 15 refute pattern === "2023-01-32" 16 refute pattern === "abc-12-31" 17end 18 19test "with positional params" do 20 pattern = _Pattern(/\A(\d+)-(\d+)-(\d+)\z/) do |year, month, day| 21 year.to_i >= 2000 && month.to_i.between?(1, 12) && day.to_i.between?(1, 31) 22 end 23 24 assert pattern === "2023-04-15" 25 assert pattern === "2050-01-01" 26 27 refute pattern === "1999-12-31" 28 refute pattern === "2023-13-01" 29 refute pattern === "2023-01-32" 30 refute pattern === "abc-12-31" 31end