File: class_library/union/result_test.rb

Overview
Module Structure
Class Hierarchy
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: Umu#6
  module: Test#8
  module: Library#10
  module: Class#12
  module: Union#14
  module: Result#16
  class: OkTest#18
inherits from
  Test ( Minitest )
has properties
method: setup #19
method: test_cmeth_make #24
method: test_imeth_show #32
method: test_imeth_to_s #39
method: test_imeth_is_ok #46
method: test_imeth_is_err #53
method: test_imess_equal #60
method: test_imess_less_than #88
  class: ErrTest#117
inherits from
  Test ( Minitest )
has properties
method: setup #118
method: test_cmeth_make #123
method: test_imeth_show #131
method: test_imeth_to_s #138
method: test_imeth_is_ok #145
method: test_imeth_is_err #152
method: test_imess_equal #159
method: test_imess_less_than #187

Code

   1  # frozen_string_literal: true
   2 
   3  require "test_helper"
   4 
   5 
   6  module Umu
   7 
   8  module Test
   9 
  10  module Library
  11 
  12  module Class
  13 
  14  module Union
  15 
  16  module Result
  17 
  18  class OkTest < Minitest::Test
  19      def setup
  20          @interp = Api.setup_interpreter
  21      end
  22 
  23 
  24      def test_cmeth_make
  25          value = Api.eval_expr @interp, "&Ok.make @Apple"
  26          assert_instance_of VCU::Result::Ok, value
  27          assert_instance_of VCA::Symbol,     value.contents
  28          assert_equal       :Apple,          value.contents.val
  29      end
  30 
  31 
  32      def test_imeth_show
  33          value = Api.eval_expr @interp, "&Ok.make @Apple.show"
  34          assert_instance_of VCA::String,     value
  35          assert_equal       '&Ok @Apple',    value.val
  36      end
  37 
  38 
  39      def test_imeth_to_s
  40          value = Api.eval_expr @interp, "&Ok.make @Apple.to-s"
  41          assert_instance_of VCA::String, value
  42          assert_equal       '&Ok Apple', value.val
  43      end
  44 
  45 
  46      def test_imeth_is_ok
  47          value = Api.eval_expr @interp, "&Ok.make @Apple.Ok?"
  48          assert_instance_of VCA::Bool,   value
  49          assert_equal       true,        value.val
  50      end
  51 
  52 
  53      def test_imeth_is_err
  54          value = Api.eval_expr @interp, "&Ok.make @Apple.Err?"
  55          assert_instance_of VCA::Bool,   value
  56          assert_equal       false,       value.val
  57      end
  58 
  59 
  60      def test_imess_equal
  61          interp_1 = Api.eval_decls @interp, <<-EOS
  62              val o1 = &Ok.make @Apple
  63              val o2 = &Ok.make @Apple
  64              EOS
  65 
  66          value = Api.eval_expr interp_1, "o1.== o2"
  67          assert_instance_of VCA::Bool,   value
  68          assert_equal       true,        value.val
  69 
  70          value = Api.eval_expr interp_1, "o1.== 4"
  71          assert_instance_of VCA::Bool,   value
  72          assert_equal       false,       value.val
  73 
  74          value = Api.eval_expr interp_1, <<-EOS
  75              o1.== (&Err.make @Banana)
  76              EOS
  77          assert_instance_of VCA::Bool,   value
  78          assert_equal       false,       value.val
  79 
  80          value = Api.eval_expr interp_1, <<-EOS
  81              o1.== (&Ok.make @Banana)
  82              EOS
  83          assert_instance_of VCA::Bool,   value
  84          assert_equal       false,       value.val
  85      end
  86 
  87 
  88      def test_imess_less_than
  89          interp_1 = Api.eval_decls @interp, <<-EOS
  90              val o = &Ok.make @Apple
  91              EOS
  92 
  93          value = Api.eval_expr interp_1, "o.< o"
  94          assert_instance_of VCA::Bool,   value
  95          assert_equal       false,       value.val
  96 
  97          value = Api.eval_expr interp_1, "o.< (&Ok.make @Banana)"
  98          assert_instance_of VCA::Bool,   value
  99          assert_equal       true,         value.val
 100 
 101          value = Api.eval_expr interp_1, "o.< (&Ok.make @A)"
 102          assert_instance_of VCA::Bool,   value
 103          assert_equal       false,        value.val
 104 
 105          value = Api.eval_expr interp_1, "o.< (&Err.make @Carrot)"
 106          assert_instance_of VCA::Bool,   value
 107          assert_equal       true,        value.val
 108 
 109          value = Api.eval_expr interp_1, 'o.< (&Err.make "Carrot")'
 110          assert_instance_of VCA::Bool,   value
 111          assert_equal       true,        value.val
 112      end
 113  end
 114 
 115 
 116 
 117  class ErrTest < Minitest::Test
 118      def setup
 119          @interp = Api.setup_interpreter
 120      end
 121 
 122 
 123      def test_cmeth_make
 124          value = Api.eval_expr @interp, "&Err.make @Apple"
 125          assert_instance_of VCU::Result::Err,    value
 126          assert_instance_of VCA::Symbol,         value.contents
 127          assert_equal       :Apple,              value.contents.val
 128      end
 129 
 130 
 131      def test_imeth_show
 132          value = Api.eval_expr @interp, "&Err.make @Apple.show"
 133          assert_instance_of VCA::String,     value
 134          assert_equal       '&Err @Apple',   value.val
 135      end
 136 
 137 
 138      def test_imeth_to_s
 139          value = Api.eval_expr @interp, "&Err.make @Apple.to-s"
 140          assert_instance_of VCA::String,     value
 141          assert_equal       '&Err Apple',    value.val
 142      end
 143 
 144 
 145      def test_imeth_is_ok
 146          value = Api.eval_expr @interp, "&Err.make @Apple.Ok?"
 147          assert_instance_of VCA::Bool,   value
 148          assert_equal       false,       value.val
 149      end
 150 
 151 
 152      def test_imeth_is_err
 153          value = Api.eval_expr @interp, "&Err.make @Apple.Err?"
 154          assert_instance_of VCA::Bool,   value
 155          assert_equal       true,        value.val
 156      end
 157 
 158 
 159      def test_imess_equal
 160          interp_1 = Api.eval_decls @interp, <<-EOS
 161              val e1 = &Err.make @Apple
 162              val e2 = &Err.make @Apple
 163              EOS
 164 
 165          value = Api.eval_expr interp_1, "e1.== e2"
 166          assert_instance_of VCA::Bool,   value
 167          assert_equal       true,        value.val
 168 
 169          value = Api.eval_expr interp_1, "e1.== 4"
 170          assert_instance_of VCA::Bool,   value
 171          assert_equal       false,       value.val
 172 
 173          value = Api.eval_expr interp_1, <<-EOS
 174              e1.== (&Ok.make @Banana)
 175              EOS
 176          assert_instance_of VCA::Bool,   value
 177          assert_equal       false,       value.val
 178 
 179          value = Api.eval_expr interp_1, <<-EOS
 180              e1.== (&Err.make @Banana)
 181              EOS
 182          assert_instance_of VCA::Bool,   value
 183          assert_equal       false,       value.val
 184      end
 185 
 186 
 187      def test_imess_less_than
 188          interp_1 = Api.eval_decls @interp, <<-EOS
 189              val o = &Err.make @Apple
 190              EOS
 191 
 192          value = Api.eval_expr interp_1, "o.< o"
 193          assert_instance_of VCA::Bool,   value
 194          assert_equal       false,       value.val
 195 
 196          value = Api.eval_expr interp_1, "o.< (&Err.make @Banana)"
 197          assert_instance_of VCA::Bool,   value
 198          assert_equal       true,         value.val
 199 
 200          value = Api.eval_expr interp_1, "o.< (&Err.make @A)"
 201          assert_instance_of VCA::Bool,   value
 202          assert_equal       false,        value.val
 203 
 204          value = Api.eval_expr interp_1, "o.< (&Ok.make @Carrot)"
 205          assert_instance_of VCA::Bool,   value
 206          assert_equal       false,       value.val
 207 
 208          value = Api.eval_expr interp_1, 'o.< (&Ok.make "Carrot")'
 209          assert_instance_of VCA::Bool,   value
 210          assert_equal       false,       value.val
 211      end
 212  end
 213 
 214  end # Umu::Test::Library::Class::Union::Result
 215 
 216  end # Umu::Test::Library::Class::Union
 217 
 218  end # Umu::Test::Library::Class
 219 
 220  end # Umu::Test::Library
 221 
 222  end # Umu::Test
 223 
 224  end # Umu