1// Copyright (c) 2021, Peter Ohler, All rights reserved. 2 3package asm_test 4 5import ( 6 "testing" 7 8 "github.com/ohler55/ojg/asm" 9 "github.com/ohler55/ojg/sen" 10 "github.com/ohler55/ojg/tt" 11) 12 13func TestMod(t *testing.T) { 14 root := testPlan(t, 15 `[ 16 [set $.asm.a [mod 7 3]] 17 [set $.asm.b [mod 6 3]] 18 ]`, 19 "{src: []}", 20 ) 21 opt := sopt 22 opt.Indent = 2 23 tt.Equal(t, 24 `{ 25 a: 1 26 b: 0 27}`, sen.String(root["asm"], &opt)) 28} 29 30func TestModArgCount(t *testing.T) { 31 p := asm.NewPlan([]interface{}{ 32 []interface{}{"mod", 1, 2, 3}, 33 }) 34 err := p.Execute(map[string]interface{}{}) 35 tt.NotNil(t, err) 36} 37 38func TestModArgType(t *testing.T) { 39 p := asm.NewPlan([]interface{}{ 40 []interface{}{"mod", 1, true}, 41 }) 42 err := p.Execute(map[string]interface{}{}) 43 tt.NotNil(t, err) 44} 45 46func TestModArgType2(t *testing.T) { 47 p := asm.NewPlan([]interface{}{ 48 []interface{}{"mod", true, 1}, 49 }) 50 err := p.Execute(map[string]interface{}{}) 51 tt.NotNil(t, err) 52} 53