File: core_language/declaration/value_test.rb

Overview
Module Structure
Class Hierarchy
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: Umu#6
  module: Test#8
  module: Grammar#10
  module: CoreLanguage#12
  module: Declaration#14
  class: ValueTest#16
inherits from
  Test ( Minitest )
has properties
method: setup #23
method: test_value #28
method: test_with_empty_declaration #37
method: test_with_single_declaration #46
method: test_with_some_declarations #55

Code

   1  # frozen_string_literal: true
   2 
   3  require "test_helper"
   4 
   5 
   6  module Umu
   7 
   8  module Test
   9 
  10  module Grammar
  11 
  12  module CoreLanguage
  13 
  14  module Declaration
  15 
  16  class ValueTest < Minitest::Test
  17  =begin
  18  <value-declaration> ::=
  19      VAL <pattern> "=" <expression>
  20      [ WHERE "{" { <declaration> } "}"
  21      ;
  22  =end
  23      def setup
  24          @interp = Api.setup_interpreter
  25      end
  26 
  27 
  28      def test_value
  29          interp = Api.eval_decls @interp, "val x = 3"
  30 
  31          value = Api.eval_expr interp, "x"
  32          assert_instance_of VCAN::Int, value
  33          assert_equal       3,         value.val
  34      end
  35 
  36 
  37      def test_with_empty_declaration
  38          interp = Api.eval_decls @interp, "val x = 3 where { }"
  39 
  40          value = Api.eval_expr interp, "x"
  41          assert_instance_of VCAN::Int, value
  42          assert_equal       3,         value.val
  43      end
  44 
  45 
  46      def test_with_single_declaration
  47          interp = Api.eval_decls @interp, "val x = y where { val y = 3 }"
  48 
  49          value = Api.eval_expr interp, "x"
  50          assert_instance_of VCAN::Int, value
  51          assert_equal       3,         value.val
  52      end
  53 
  54 
  55      def test_with_some_declarations
  56          interp = Api.eval_decls @interp, <<-EOS
  57              val x = y + z where { val y = 3 val z = 4 }
  58              EOS
  59 
  60          value = Api.eval_expr interp, "x"
  61          assert_instance_of VCAN::Int, value
  62          assert_equal       7,         value.val
  63      end
  64  end
  65 
  66  end # Umu::Test::Grammar::CoreLanguage::Declaration
  67 
  68  end # Umu::Test::Grammar::CoreLanguage
  69 
  70  end # Umu::Test::Grammar
  71 
  72  end # Umu::Test
  73 
  74  end # Umu