File: class_library/union/datum_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
  class: DatumTest#16
inherits from
  Test ( Minitest )
has properties
method: setup #17
method: test_cmeth_make #22
method: test_imeth_show #41
method: test_imeth_to_s #50
method: test_imess_equal #59
method: test_imess_less_than #87

Class Hierarchy

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  class DatumTest < Minitest::Test
  17      def setup
  18          @interp = Api.setup_interpreter
  19      end
  20 
  21 
  22      def test_cmeth_make
  23          value_1 = Api.eval_expr @interp, <<-EOS
  24              &Datum.make @Fruits (@Apple, "Aomori")
  25              EOS
  26          assert_instance_of VCU::Datum,      value_1
  27          assert_instance_of ::Symbol,        value_1.tag_sym
  28          assert_equal       :Fruits,         value_1.tag_sym
  29          assert_instance_of VCP::Tuple,      value_1.contents
  30 
  31          value_2 = Api.eval_expr @interp, <<-EOS
  32              &Datum.(tag:@Fruits contents:(@Apple, "Aomori"))
  33              EOS
  34          assert_instance_of VCU::Datum,      value_2
  35          assert_instance_of ::Symbol,        value_2.tag_sym
  36          assert_equal       :Fruits,         value_2.tag_sym
  37          assert_instance_of VCP::Tuple,      value_2.contents
  38      end
  39 
  40 
  41      def test_imeth_show
  42          value = Api.eval_expr @interp, <<-EOS
  43              &Datum.make @Fruits (@Apple, "Aomori").show
  44              EOS
  45          assert_instance_of VCA::String,                 value
  46          assert_equal       'Fruits (@Apple, "Aomori")', value.val
  47      end
  48 
  49 
  50      def test_imeth_to_s
  51          value = Api.eval_expr @interp, <<-EOS
  52              &Datum.make @Fruits (@Apple, "Aomori").to-s
  53              EOS
  54          assert_instance_of VCA::String,                 value
  55          assert_equal       'Fruits (Apple, Aomori)', value.val
  56      end
  57 
  58 
  59      def test_imess_equal
  60          interp_1 = Api.eval_decls @interp, <<-EOS
  61              val d1 = &Datum.make @Fruits (@Apple, 300)
  62              val d2 = &Datum.make @Fruits (@Apple, 300)
  63              EOS
  64 
  65          value = Api.eval_expr interp_1, "d1.== d2"
  66          assert_instance_of VCA::Bool,   value
  67          assert_equal       true,        value.val
  68 
  69          value = Api.eval_expr interp_1, "d1.== 4"
  70          assert_instance_of VCA::Bool,   value
  71          assert_equal       false,       value.val
  72 
  73          value = Api.eval_expr interp_1, <<-EOS
  74              d1.== (&Datum.make @Vegetables (@Apple, 300))
  75              EOS
  76          assert_instance_of VCA::Bool,   value
  77          assert_equal       false,       value.val
  78 
  79          value = Api.eval_expr interp_1, <<-EOS
  80              d1.== (&Datum.make @Fruits (@Apple, 500))
  81              EOS
  82          assert_instance_of VCA::Bool,   value
  83          assert_equal       false,       value.val
  84      end
  85 
  86 
  87      def test_imess_less_than
  88          interp_1 = Api.eval_decls @interp, <<-EOS
  89              val d = &Datum.make @Fruits (@Apple, 300)
  90              EOS
  91 
  92          value = Api.eval_expr interp_1, "d.< d"
  93          assert_instance_of VCA::Bool,   value
  94          assert_equal       false,       value.val
  95 
  96          value = Api.eval_expr interp_1, <<-EOS
  97              d.< (&Datum.make @Alpha (@Apple, 300))
  98              EOS
  99          assert_instance_of VCA::Bool,   value
 100          assert_equal       false,        value.val
 101 
 102          value = Api.eval_expr interp_1, <<-EOS
 103              d.< (&Datum.make @Gamma (@Apple, 300))
 104              EOS
 105          assert_instance_of VCA::Bool,   value
 106          assert_equal       true,       value.val
 107 
 108          value = Api.eval_expr interp_1, <<-EOS
 109              d.< (&Datum.make @Fruits (@Apple, 500))
 110              EOS
 111          assert_instance_of VCA::Bool,   value
 112          assert_equal       true,         value.val
 113 
 114          value = Api.eval_expr interp_1, <<-EOS
 115              d.< (&Datum.make @Fruits (@Apple, 100))
 116              EOS
 117          assert_instance_of VCA::Bool,   value
 118          assert_equal       false,      value.val
 119      end
 120  end
 121 
 122  end # Umu::Test::Library::Class::Union
 123 
 124  end # Umu::Test::Library::Class
 125 
 126  end # Umu::Test::Library
 127 
 128  end # Umu::Test
 129 
 130  end # Umu