# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: integer-specific arithmetic
#evalPartial
-- in.cue --
q1:  5 quo 2   // 2
q2:  5 quo -2  // -2
q3:  -5 quo 2  // -2
q4:  -5 quo -2 // 2
qe1: 2.0 quo 1
qe2: 2 quo 1.0

r1:  5 rem 2   // 1
r2:  5 rem -2  // 1
r3:  -5 rem 2  // -1
r4:  -5 rem -2 // -1
re1: 2.0 rem 1
re2: 2 rem 1.0

d1:  5 div 2   // 2
d2:  5 div -2  // -2
d3:  -5 div 2  // -3
d4:  -5 div -2 // 3
de1: 2.0 div 1
de2: 2 div 1.0

m1:  5 mod 2   // 1
m2:  5 mod -2  // 1
m3:  -5 mod 2  // 1
m4:  -5 mod -2 // 1
me1: 2.0 mod 1
me2: 2 mod 1.0
-- out/def --
q1:  2
q2:  -2
q3:  -2
q4:  2
qe1: _|_ // invalid operation 2.0 quo 1 (mismatched types float and int)
qe2: _|_ // invalid operation 2 quo 1.0 (mismatched types int and float)
r1:  1
r2:  1
r3:  -1
r4:  -1
re1: _|_ // invalid operation 2.0 rem 1 (mismatched types float and int)
re2: _|_ // invalid operation 2 rem 1.0 (mismatched types int and float)
d1:  2
d2:  -2
d3:  -3
d4:  3
de1: _|_ // invalid operation 2.0 div 1 (mismatched types float and int)
de2: _|_ // invalid operation 2 div 1.0 (mismatched types int and float)
m1:  1
m2:  1
m3:  1
m4:  1
me1: _|_ // invalid operation 2.0 mod 1 (mismatched types float and int)
me2: _|_ // invalid operation 2 mod 1.0 (mismatched types int and float)
-- out/legacy-debug --
<0>{q1: 2, q2: -2, q3: -2, q4: 2, qe1: _|_((2.0 quo 1):invalid operation 2.0 quo 1 (mismatched types float and int)), qe2: _|_((2 quo 1.0):invalid operation 2 quo 1.0 (mismatched types int and float)), r1: 1, r2: 1, r3: -1, r4: -1, re1: _|_((2.0 rem 1):invalid operation 2.0 rem 1 (mismatched types float and int)), re2: _|_((2 rem 1.0):invalid operation 2 rem 1.0 (mismatched types int and float)), d1: 2, d2: -2, d3: -3, d4: 3, de1: _|_((2.0 div 1):invalid operation 2.0 div 1 (mismatched types float and int)), de2: _|_((2 div 1.0):invalid operation 2 div 1.0 (mismatched types int and float)), m1: 1, m2: 1, m3: 1, m4: 1, me1: _|_((2.0 mod 1):invalid operation 2.0 mod 1 (mismatched types float and int)), me2: _|_((2 mod 1.0):invalid operation 2 mod 1.0 (mismatched types int and float))}
-- out/compile --
--- in.cue
{
  q1: (5 quo 2)
  q2: (5 quo -2)
  q3: (-5 quo 2)
  q4: (-5 quo -2)
  qe1: (2.0 quo 1)
  qe2: (2 quo 1.0)
  r1: (5 rem 2)
  r2: (5 rem -2)
  r3: (-5 rem 2)
  r4: (-5 rem -2)
  re1: (2.0 rem 1)
  re2: (2 rem 1.0)
  d1: (5 div 2)
  d2: (5 div -2)
  d3: (-5 div 2)
  d4: (-5 div -2)
  de1: (2.0 div 1)
  de2: (2 div 1.0)
  m1: (5 mod 2)
  m2: (5 mod -2)
  m3: (-5 mod 2)
  m4: (-5 mod -2)
  me1: (2.0 mod 1)
  me2: (2 mod 1.0)
}
-- out/eval --
Errors:
invalid operands 2.0 and 1 to 'quo' (type float and int):
    ./in.cue:5:6
invalid operands 2 and 1.0 to 'quo' (type int and float):
    ./in.cue:6:6
invalid operands 2.0 and 1 to 'rem' (type float and int):
    ./in.cue:12:6
invalid operands 2 and 1.0 to 'rem' (type int and float):
    ./in.cue:13:6
invalid operands 2.0 and 1 to 'div' (type float and int):
    ./in.cue:19:6
invalid operands 2 and 1.0 to 'div' (type int and float):
    ./in.cue:20:6
invalid operands 2.0 and 1 to 'mod' (type float and int):
    ./in.cue:26:6
invalid operands 2 and 1.0 to 'mod' (type int and float):
    ./in.cue:27:6

Result:
(_|_){
  // [eval]
  q1: (int){ 2 }
  q2: (int){ -2 }
  q3: (int){ -2 }
  q4: (int){ 2 }
  qe1: (_|_){
    // [eval] invalid operands 2.0 and 1 to 'quo' (type float and int):
    //     ./in.cue:5:6
  }
  qe2: (_|_){
    // [eval] invalid operands 2 and 1.0 to 'quo' (type int and float):
    //     ./in.cue:6:6
  }
  r1: (int){ 1 }
  r2: (int){ 1 }
  r3: (int){ -1 }
  r4: (int){ -1 }
  re1: (_|_){
    // [eval] invalid operands 2.0 and 1 to 'rem' (type float and int):
    //     ./in.cue:12:6
  }
  re2: (_|_){
    // [eval] invalid operands 2 and 1.0 to 'rem' (type int and float):
    //     ./in.cue:13:6
  }
  d1: (int){ 2 }
  d2: (int){ -2 }
  d3: (int){ -3 }
  d4: (int){ 3 }
  de1: (_|_){
    // [eval] invalid operands 2.0 and 1 to 'div' (type float and int):
    //     ./in.cue:19:6
  }
  de2: (_|_){
    // [eval] invalid operands 2 and 1.0 to 'div' (type int and float):
    //     ./in.cue:20:6
  }
  m1: (int){ 1 }
  m2: (int){ 1 }
  m3: (int){ 1 }
  m4: (int){ 1 }
  me1: (_|_){
    // [eval] invalid operands 2.0 and 1 to 'mod' (type float and int):
    //     ./in.cue:26:6
  }
  me2: (_|_){
    // [eval] invalid operands 2 and 1.0 to 'mod' (type int and float):
    //     ./in.cue:27:6
  }
}
