github.com/mem/u-root@v2.0.1-0.20181004165302-9b18b4636a33+incompatible/cmds/elvish/eval/builtin_fn_pred_test.go (about)

     1  package eval
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestBool(t *testing.T) {
     8  	runTests(t, []Test{
     9  		That(`bool $true`).Puts(true),
    10  		That(`bool a`).Puts(true),
    11  		That(`bool [a]`).Puts(true),
    12  		// "Empty" values are also true in Elvish
    13  		That(`bool []`).Puts(true),
    14  		That(`bool [&]`).Puts(true),
    15  		That(`bool 0`).Puts(true),
    16  		That(`bool ""`).Puts(true),
    17  		// Only errors and $false are false
    18  		That(`bool ?(fail x)`).Puts(false),
    19  		That(`bool $false`).Puts(false),
    20  
    21  		That(`not $false`).Puts(true),
    22  		That(`not ?(fail x)`).Puts(true),
    23  		That(`not $true`).Puts(false),
    24  		That(`not 0`).Puts(false),
    25  
    26  		That(`is 1 1`).Puts(true),
    27  		That(`is a b`).Puts(false),
    28  		That(`is [] []`).Puts(true),
    29  		That(`is [1] [1]`).Puts(false),
    30  		That(`eq 1 1`).Puts(true),
    31  		That(`eq a b`).Puts(false),
    32  		That(`eq [] []`).Puts(true),
    33  		That(`eq [1] [1]`).Puts(true),
    34  		That(`not-eq a b`).Puts(true),
    35  	})
    36  }