/ Hex Artifact Content
Login

Artifact bc684cc2a75edb240f9fd49275f3cacb025c0f1e:


0000: 23 20 32 30 30 31 20 53 65 70 74 65 6d 62 65 72  # 2001 September
0010: 20 31 35 0a 23 0a 23 20 54 68 65 20 61 75 74 68   15.#.# The auth
0020: 6f 72 20 64 69 73 63 6c 61 69 6d 73 20 63 6f 70  or disclaims cop
0030: 79 72 69 67 68 74 20 74 6f 20 74 68 69 73 20 73  yright to this s
0040: 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 49 6e 20  ource code.  In 
0050: 70 6c 61 63 65 20 6f 66 0a 23 20 61 20 6c 65 67  place of.# a leg
0060: 61 6c 20 6e 6f 74 69 63 65 2c 20 68 65 72 65 20  al notice, here 
0070: 69 73 20 61 20 62 6c 65 73 73 69 6e 67 3a 0a 23  is a blessing:.#
0080: 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 64 6f  .#    May you do
0090: 20 67 6f 6f 64 20 61 6e 64 20 6e 6f 74 20 65 76   good and not ev
00a0: 69 6c 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75  il..#    May you
00b0: 20 66 69 6e 64 20 66 6f 72 67 69 76 65 6e 65 73   find forgivenes
00c0: 73 20 66 6f 72 20 79 6f 75 72 73 65 6c 66 20 61  s for yourself a
00d0: 6e 64 20 66 6f 72 67 69 76 65 20 6f 74 68 65 72  nd forgive other
00e0: 73 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20  s..#    May you 
00f0: 73 68 61 72 65 20 66 72 65 65 6c 79 2c 20 6e 65  share freely, ne
0100: 76 65 72 20 74 61 6b 69 6e 67 20 6d 6f 72 65 20  ver taking more 
0110: 74 68 61 6e 20 79 6f 75 20 67 69 76 65 2e 0a 23  than you give..#
0120: 0a 23 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  .#**************
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 23 20 54 68 69 73  *********.# This
0170: 20 66 69 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73   file implements
0180: 20 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74   regression test
0190: 73 20 66 6f 72 20 53 51 4c 69 74 65 20 6c 69 62  s for SQLite lib
01a0: 72 61 72 79 2e 20 54 68 65 20 66 6f 63 75 73 0a  rary. The focus.
01b0: 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 20 69  # of this file i
01c0: 73 20 74 65 73 74 69 6e 67 20 74 68 65 20 69 6e  s testing the in
01d0: 74 65 72 61 63 74 69 6f 6e 20 6f 66 20 6d 61 6e  teraction of man
01e0: 69 66 65 73 74 20 74 79 70 65 73 2c 20 74 79 70  ifest types, typ
01f0: 65 20 61 66 66 69 6e 69 74 79 0a 23 20 61 6e 64  e affinity.# and
0200: 20 63 6f 6d 70 61 72 69 73 6f 6e 20 65 78 70 72   comparison expr
0210: 65 73 73 69 6f 6e 73 2e 0a 23 0a 23 20 24 49 64  essions..#.# $Id
0220: 3a 20 74 79 70 65 73 32 2e 74 65 73 74 2c 76 20  : types2.test,v 
0230: 31 2e 31 20 32 30 30 34 2f 30 35 2f 31 36 20 31  1.1 2004/05/16 1
0240: 31 3a 31 35 3a 34 32 20 64 61 6e 69 65 6c 6b 31  1:15:42 danielk1
0250: 39 37 37 20 45 78 70 20 24 0a 0a 73 65 74 20 74  977 Exp $..set t
0260: 65 73 74 64 69 72 20 5b 66 69 6c 65 20 64 69 72  estdir [file dir
0270: 6e 61 6d 65 20 24 61 72 67 76 30 5d 0a 73 6f 75  name $argv0].sou
0280: 72 63 65 20 24 74 65 73 74 64 69 72 2f 74 65 73  rce $testdir/tes
0290: 74 65 72 2e 74 63 6c 0a 0a 23 20 54 65 73 74 73  ter.tcl..# Tests
02a0: 20 69 6e 20 74 68 69 73 20 66 69 6c 65 20 61 72   in this file ar
02b0: 65 20 6f 72 67 61 6e 69 7a 65 64 20 72 6f 75 67  e organized roug
02c0: 68 6c 79 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a  hly as follows:.
02d0: 23 0a 23 20 74 79 70 65 73 32 2d 31 2e 2a 3a 20  #.# types2-1.*: 
02e0: 54 68 65 20 27 3d 27 20 6f 70 65 72 61 74 6f 72  The '=' operator
02f0: 20 69 6e 20 74 68 65 20 61 62 73 65 6e 63 65 20   in the absence 
0300: 6f 66 20 61 6e 20 69 6e 64 65 78 2e 0a 23 20 74  of an index..# t
0310: 79 70 65 73 32 2d 32 2e 2a 3a 20 54 68 65 20 27  ypes2-2.*: The '
0320: 3d 27 20 6f 70 65 72 61 74 6f 72 20 69 6d 70 6c  =' operator impl
0330: 65 6d 65 6e 74 65 64 20 75 73 69 6e 67 20 61 6e  emented using an
0340: 20 69 6e 64 65 78 2e 0a 23 20 74 79 70 65 73 32   index..# types2
0350: 2d 32 2e 2a 3a 20 54 68 65 20 27 3c 27 20 6f 70  -2.*: The '<' op
0360: 65 72 61 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74  erator implement
0370: 65 64 20 75 73 69 6e 67 20 61 6e 20 69 6e 64 65  ed using an inde
0380: 78 2e 0a 23 20 74 79 70 65 73 32 2d 33 2e 2a 3a  x..# types2-3.*:
0390: 20 54 68 65 20 27 3e 27 20 6f 70 65 72 61 74 6f   The '>' operato
03a0: 72 20 69 6e 20 74 68 65 20 61 62 73 65 6e 73 65  r in the absense
03b0: 20 6f 66 20 61 6e 20 69 6e 64 65 78 2e 0a 23 0a   of an index..#.
03c0: 0a 65 78 65 63 73 71 6c 20 7b 0a 20 20 43 52 45  .execsql {.  CRE
03d0: 41 54 45 20 54 41 42 4c 45 20 74 31 28 0a 20 20  ATE TABLE t1(.  
03e0: 20 20 69 31 20 49 4e 54 45 47 45 52 2c 0a 20 20    i1 INTEGER,.  
03f0: 20 20 69 32 20 49 4e 54 45 47 45 52 2c 0a 20 20    i2 INTEGER,.  
0400: 20 20 6e 31 20 4e 55 4d 45 52 49 43 2c 0a 20 20    n1 NUMERIC,.  
0410: 20 20 6e 32 20 4e 55 4d 45 52 49 43 2c 0a 20 20    n2 NUMERIC,.  
0420: 20 20 74 31 20 54 45 58 54 2c 0a 20 20 20 20 74    t1 TEXT,.    t
0430: 32 20 54 45 58 54 2c 0a 20 20 20 20 6f 31 2c 0a  2 TEXT,.    o1,.
0440: 20 20 20 20 6f 32 0a 20 20 29 3b 0a 20 20 49 4e      o2.  );.  IN
0450: 53 45 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c  SERT INTO t1 VAL
0460: 55 45 53 28 4e 55 4c 4c 2c 4e 55 4c 4c 2c 4e 55  UES(NULL,NULL,NU
0470: 4c 4c 2c 4e 55 4c 4c 2c 4e 55 4c 4c 2c 4e 55 4c  LL,NULL,NULL,NUL
0480: 4c 2c 4e 55 4c 4c 2c 4e 55 4c 4c 29 3b 0a 7d 0a  L,NULL,NULL);.}.
0490: 0a 70 72 6f 63 20 74 65 73 74 5f 62 6f 6f 6c 20  .proc test_bool 
04a0: 7b 74 65 73 74 6e 61 6d 65 20 76 61 72 73 20 65  {testname vars e
04b0: 78 70 72 20 72 65 73 7d 20 7b 0a 20 20 69 66 20  xpr res} {.  if 
04c0: 7b 20 24 76 61 72 73 20 21 3d 20 22 22 20 7d 20  { $vars != "" } 
04d0: 7b 0a 20 20 20 20 65 78 65 63 73 71 6c 20 22 55  {.    execsql "U
04e0: 50 44 41 54 45 20 74 31 20 53 45 54 20 24 76 61  PDATE t1 SET $va
04f0: 72 73 22 0a 20 20 7d 0a 0a 20 20 66 6f 72 65 61  rs".  }..  forea
0500: 63 68 20 7b 74 20 65 20 72 7d 20 5b 6c 69 73 74  ch {t e r} [list
0510: 20 24 74 65 73 74 6e 61 6d 65 20 24 65 78 70 72   $testname $expr
0520: 20 24 72 65 73 5d 20 7b 7d 0a 0a 20 20 64 6f 5f   $res] {}..  do_
0530: 74 65 73 74 20 24 74 2e 31 20 22 65 78 65 63 73  test $t.1 "execs
0540: 71 6c 20 7b 53 45 4c 45 43 54 20 24 65 20 46 52  ql {SELECT $e FR
0550: 4f 4d 20 74 31 7d 22 20 24 72 0a 20 20 64 6f 5f  OM t1}" $r.  do_
0560: 74 65 73 74 20 24 74 2e 32 20 22 65 78 65 63 73  test $t.2 "execs
0570: 71 6c 20 7b 53 45 4c 45 43 54 20 31 20 46 52 4f  ql {SELECT 1 FRO
0580: 4d 20 74 31 20 57 48 45 52 45 20 24 65 78 70 72  M t1 WHERE $expr
0590: 7d 22 20 5b 65 78 70 72 20 24 72 3f 22 31 22 3a  }" [expr $r?"1":
05a0: 22 22 5d 0a 20 20 64 6f 5f 74 65 73 74 20 24 74  ""].  do_test $t
05b0: 2e 33 20 22 65 78 65 63 73 71 6c 20 7b 53 45 4c  .3 "execsql {SEL
05c0: 45 43 54 20 31 20 46 52 4f 4d 20 74 31 20 57 48  ECT 1 FROM t1 WH
05d0: 45 52 45 20 4e 4f 54 20 28 24 65 29 7d 22 20 5b  ERE NOT ($e)}" [
05e0: 65 78 70 72 20 24 72 3f 22 22 3a 22 31 22 5d 0a  expr $r?"":"1"].
05f0: 7d 0a 0a 23 20 43 6f 6d 70 61 72 65 20 6c 69 74  }..# Compare lit
0600: 65 72 61 6c 73 20 61 67 61 69 6e 73 74 20 6c 69  erals against li
0610: 74 65 72 61 6c 73 0a 74 65 73 74 5f 62 6f 6f 6c  terals.test_bool
0620: 20 74 79 70 65 73 32 2d 31 2e 31 20 22 22 20 7b   types2-1.1 "" {
0630: 35 30 30 20 3d 20 35 30 30 2e 30 7d 20 31 0a 74  500 = 500.0} 1.t
0640: 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65 73 32 2d  est_bool types2-
0650: 31 2e 32 20 22 22 20 7b 27 35 30 30 27 20 3d 20  1.2 "" {'500' = 
0660: 35 30 30 2e 30 7d 20 31 0a 74 65 73 74 5f 62 6f  500.0} 1.test_bo
0670: 6f 6c 20 74 79 70 65 73 32 2d 31 2e 33 20 22 22  ol types2-1.3 ""
0680: 20 7b 35 30 30 20 3d 20 27 35 30 30 2e 30 27 7d   {500 = '500.0'}
0690: 20 31 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70   1.test_bool typ
06a0: 65 73 32 2d 31 2e 34 20 22 22 20 7b 27 35 30 30  es2-1.4 "" {'500
06b0: 27 20 3d 20 27 35 30 30 2e 30 27 7d 20 30 0a 0a  ' = '500.0'} 0..
06c0: 23 20 43 6f 6d 70 61 72 65 20 6c 69 74 65 72 61  # Compare litera
06d0: 6c 73 20 61 67 61 69 6e 73 74 20 61 20 63 6f 6c  ls against a col
06e0: 75 6d 6e 20 77 69 74 68 20 54 45 58 54 20 61 66  umn with TEXT af
06f0: 66 69 6e 69 74 79 0a 74 65 73 74 5f 62 6f 6f 6c  finity.test_bool
0700: 20 74 79 70 65 73 32 2d 31 2e 35 20 7b 74 31 3d   types2-1.5 {t1=
0710: 35 30 30 7d 20 7b 35 30 30 20 3d 20 74 31 7d 20  500} {500 = t1} 
0720: 31 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65  1.test_bool type
0730: 73 32 2d 31 2e 36 20 7b 74 31 3d 35 30 30 7d 20  s2-1.6 {t1=500} 
0740: 7b 27 35 30 30 27 20 3d 20 74 31 7d 20 31 0a 74  {'500' = t1} 1.t
0750: 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65 73 32 2d  est_bool types2-
0760: 31 2e 37 20 7b 74 31 3d 35 30 30 7d 20 7b 35 30  1.7 {t1=500} {50
0770: 30 2e 30 20 3d 20 74 31 7d 20 30 0a 74 65 73 74  0.0 = t1} 0.test
0780: 5f 62 6f 6f 6c 20 74 79 70 65 73 32 2d 31 2e 38  _bool types2-1.8
0790: 20 7b 74 31 3d 35 30 30 7d 20 7b 27 35 30 30 2e   {t1=500} {'500.
07a0: 30 27 20 3d 20 74 31 7d 20 30 0a 74 65 73 74 5f  0' = t1} 0.test_
07b0: 62 6f 6f 6c 20 74 79 70 65 73 32 2d 31 2e 39 20  bool types2-1.9 
07c0: 7b 74 31 3d 27 35 30 30 27 7d 20 7b 35 30 30 20  {t1='500'} {500 
07d0: 3d 20 74 31 7d 20 31 0a 74 65 73 74 5f 62 6f 6f  = t1} 1.test_boo
07e0: 6c 20 74 79 70 65 73 32 2d 31 2e 31 30 20 7b 74  l types2-1.10 {t
07f0: 31 3d 27 35 30 30 27 7d 20 7b 27 35 30 30 27 20  1='500'} {'500' 
0800: 3d 20 74 31 7d 20 31 0a 74 65 73 74 5f 62 6f 6f  = t1} 1.test_boo
0810: 6c 20 74 79 70 65 73 32 2d 31 2e 31 31 20 7b 74  l types2-1.11 {t
0820: 31 3d 27 35 30 30 27 7d 20 7b 35 30 30 2e 30 20  1='500'} {500.0 
0830: 3d 20 74 31 7d 20 30 0a 74 65 73 74 5f 62 6f 6f  = t1} 0.test_boo
0840: 6c 20 74 79 70 65 73 32 2d 31 2e 31 32 20 7b 74  l types2-1.12 {t
0850: 31 3d 27 35 30 30 27 7d 20 7b 27 35 30 30 2e 30  1='500'} {'500.0
0860: 27 20 3d 20 74 31 7d 20 30 0a 0a 23 20 43 6f 6d  ' = t1} 0..# Com
0870: 70 61 72 65 20 6c 69 74 65 72 61 6c 73 20 61 67  pare literals ag
0880: 61 69 6e 73 74 20 61 20 63 6f 6c 75 6d 6e 20 77  ainst a column w
0890: 69 74 68 20 4e 55 4d 45 52 49 43 20 61 66 66 69  ith NUMERIC affi
08a0: 6e 69 74 79 0a 74 65 73 74 5f 62 6f 6f 6c 20 74  nity.test_bool t
08b0: 79 70 65 73 32 2d 31 2e 31 33 20 7b 6e 31 3d 35  ypes2-1.13 {n1=5
08c0: 30 30 7d 20 7b 35 30 30 20 3d 20 6e 31 7d 20 31  00} {500 = n1} 1
08d0: 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65 73  .test_bool types
08e0: 32 2d 31 2e 31 34 20 7b 6e 31 3d 35 30 30 7d 20  2-1.14 {n1=500} 
08f0: 7b 27 35 30 30 27 20 3d 20 6e 31 7d 20 31 0a 74  {'500' = n1} 1.t
0900: 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65 73 32 2d  est_bool types2-
0910: 31 2e 31 35 20 7b 6e 31 3d 35 30 30 7d 20 7b 35  1.15 {n1=500} {5
0920: 30 30 2e 30 20 3d 20 6e 31 7d 20 31 0a 74 65 73  00.0 = n1} 1.tes
0930: 74 5f 62 6f 6f 6c 20 74 79 70 65 73 32 2d 31 2e  t_bool types2-1.
0940: 31 36 20 7b 6e 31 3d 35 30 30 7d 20 7b 27 35 30  16 {n1=500} {'50
0950: 30 2e 30 27 20 3d 20 6e 31 7d 20 31 0a 74 65 73  0.0' = n1} 1.tes
0960: 74 5f 62 6f 6f 6c 20 74 79 70 65 73 32 2d 31 2e  t_bool types2-1.
0970: 31 37 20 7b 6e 31 3d 27 35 30 30 27 7d 20 7b 35  17 {n1='500'} {5
0980: 30 30 20 3d 20 6e 31 7d 20 31 0a 74 65 73 74 5f  00 = n1} 1.test_
0990: 62 6f 6f 6c 20 74 79 70 65 73 32 2d 31 2e 31 38  bool types2-1.18
09a0: 20 7b 6e 31 3d 27 35 30 30 27 7d 20 7b 27 35 30   {n1='500'} {'50
09b0: 30 27 20 3d 20 6e 31 7d 20 31 0a 74 65 73 74 5f  0' = n1} 1.test_
09c0: 62 6f 6f 6c 20 74 79 70 65 73 32 2d 31 2e 31 39  bool types2-1.19
09d0: 20 7b 6e 31 3d 27 35 30 30 27 7d 20 7b 35 30 30   {n1='500'} {500
09e0: 2e 30 20 3d 20 6e 31 7d 20 31 0a 74 65 73 74 5f  .0 = n1} 1.test_
09f0: 62 6f 6f 6c 20 74 79 70 65 73 32 2d 31 2e 32 30  bool types2-1.20
0a00: 20 7b 6e 31 3d 27 35 30 30 27 7d 20 7b 27 35 30   {n1='500'} {'50
0a10: 30 2e 30 27 20 3d 20 6e 31 7d 20 31 0a 0a 23 20  0.0' = n1} 1..# 
0a20: 43 6f 6d 70 61 72 65 20 6c 69 74 65 72 61 6c 73  Compare literals
0a30: 20 61 67 61 69 6e 73 74 20 61 20 63 6f 6c 75 6d   against a colum
0a40: 6e 20 77 69 74 68 20 61 66 66 69 6e 69 74 79 20  n with affinity 
0a50: 4e 4f 4e 45 0a 74 65 73 74 5f 62 6f 6f 6c 20 74  NONE.test_bool t
0a60: 79 70 65 73 32 2d 31 2e 32 31 20 7b 6f 31 3d 35  ypes2-1.21 {o1=5
0a70: 30 30 7d 20 7b 35 30 30 20 3d 20 6f 31 7d 20 31  00} {500 = o1} 1
0a80: 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65 73  .test_bool types
0a90: 32 2d 31 2e 32 32 20 7b 6f 31 3d 35 30 30 7d 20  2-1.22 {o1=500} 
0aa0: 7b 27 35 30 30 27 20 3d 20 6f 31 7d 20 30 0a 74  {'500' = o1} 0.t
0ab0: 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65 73 32 2d  est_bool types2-
0ac0: 31 2e 32 33 20 7b 6f 31 3d 35 30 30 7d 20 7b 35  1.23 {o1=500} {5
0ad0: 30 30 2e 30 20 3d 20 6f 31 7d 20 31 0a 74 65 73  00.0 = o1} 1.tes
0ae0: 74 5f 62 6f 6f 6c 20 74 79 70 65 73 32 2d 31 2e  t_bool types2-1.
0af0: 32 34 20 7b 6f 31 3d 35 30 30 7d 20 7b 27 35 30  24 {o1=500} {'50
0b00: 30 2e 30 27 20 3d 20 6f 31 7d 20 30 0a 74 65 73  0.0' = o1} 0.tes
0b10: 74 5f 62 6f 6f 6c 20 74 79 70 65 73 32 2d 31 2e  t_bool types2-1.
0b20: 32 35 20 7b 6f 31 3d 27 35 30 30 27 7d 20 7b 35  25 {o1='500'} {5
0b30: 30 30 20 3d 20 6f 31 7d 20 30 0a 74 65 73 74 5f  00 = o1} 0.test_
0b40: 62 6f 6f 6c 20 74 79 70 65 73 32 2d 31 2e 32 36  bool types2-1.26
0b50: 20 7b 6f 31 3d 27 35 30 30 27 7d 20 7b 27 35 30   {o1='500'} {'50
0b60: 30 27 20 3d 20 6f 31 7d 20 31 0a 74 65 73 74 5f  0' = o1} 1.test_
0b70: 62 6f 6f 6c 20 74 79 70 65 73 32 2d 31 2e 32 37  bool types2-1.27
0b80: 20 7b 6f 31 3d 27 35 30 30 27 7d 20 7b 35 30 30   {o1='500'} {500
0b90: 2e 30 20 3d 20 6f 31 7d 20 30 0a 74 65 73 74 5f  .0 = o1} 0.test_
0ba0: 62 6f 6f 6c 20 74 79 70 65 73 32 2d 31 2e 32 38  bool types2-1.28
0bb0: 20 7b 6f 31 3d 27 35 30 30 27 7d 20 7b 27 35 30   {o1='500'} {'50
0bc0: 30 2e 30 27 20 3d 20 6f 31 7d 20 30 0a 0a 73 65  0.0' = o1} 0..se
0bd0: 74 20 76 61 6c 73 20 5b 6c 69 73 74 20 31 30 20  t vals [list 10 
0be0: 31 30 2e 30 20 27 31 30 27 20 27 31 30 2e 30 27  10.0 '10' '10.0'
0bf0: 20 32 30 20 32 30 2e 30 20 27 32 30 27 20 27 32   20 20.0 '20' '2
0c00: 30 2e 30 27 20 33 30 20 33 30 2e 30 20 27 33 30  0.0' 30 30.0 '30
0c10: 27 20 27 33 30 2e 30 27 5d 0a 23 20 20 20 20 20  ' '30.0'].#     
0c20: 20 20 20 20 20 20 20 20 20 31 20 20 32 20 20 20           1  2   
0c30: 20 33 20 20 20 20 34 20 20 20 20 20 20 35 20 20   3    4      5  
0c40: 36 20 20 20 20 37 20 20 20 20 38 20 20 20 20 20  6    7    8     
0c50: 20 39 20 20 31 30 20 20 20 31 31 20 20 20 31 32   9  10   11   12
0c60: 0a 0a 65 78 65 63 73 71 6c 20 7b 0a 20 20 43 52  ..execsql {.  CR
0c70: 45 41 54 45 20 54 41 42 4c 45 20 74 32 28 69 20  EATE TABLE t2(i 
0c80: 49 4e 54 45 47 45 52 2c 20 6e 20 4e 55 4d 45 52  INTEGER, n NUMER
0c90: 49 43 2c 20 74 20 54 45 58 54 2c 20 6f 29 3b 0a  IC, t TEXT, o);.
0ca0: 20 20 43 52 45 41 54 45 20 49 4e 44 45 58 20 74    CREATE INDEX t
0cb0: 32 69 31 20 4f 4e 20 74 32 28 69 29 3b 0a 20 20  2i1 ON t2(i);.  
0cc0: 43 52 45 41 54 45 20 49 4e 44 45 58 20 74 32 69  CREATE INDEX t2i
0cd0: 32 20 4f 4e 20 74 32 28 6e 29 3b 0a 20 20 43 52  2 ON t2(n);.  CR
0ce0: 45 41 54 45 20 49 4e 44 45 58 20 74 32 69 33 20  EATE INDEX t2i3 
0cf0: 4f 4e 20 74 32 28 74 29 3b 0a 20 20 43 52 45 41  ON t2(t);.  CREA
0d00: 54 45 20 49 4e 44 45 58 20 74 32 69 34 20 4f 4e  TE INDEX t2i4 ON
0d10: 20 74 32 28 6f 29 3b 0a 7d 0a 66 6f 72 65 61 63   t2(o);.}.foreac
0d20: 68 20 76 20 24 76 61 6c 73 20 7b 0a 20 20 65 78  h v $vals {.  ex
0d30: 65 63 73 71 6c 20 22 49 4e 53 45 52 54 20 49 4e  ecsql "INSERT IN
0d40: 54 4f 20 74 32 20 56 41 4c 55 45 53 28 24 76 2c  TO t2 VALUES($v,
0d50: 20 24 76 2c 20 24 76 2c 20 24 76 29 3b 22 0a 7d   $v, $v, $v);".}
0d60: 0a 0a 70 72 6f 63 20 74 65 73 74 5f 62 6f 6f 6c  ..proc test_bool
0d70: 73 65 74 20 7b 74 65 73 74 6e 61 6d 65 20 77 68  set {testname wh
0d80: 65 72 65 20 73 65 74 7d 20 7b 0a 20 20 73 65 74  ere set} {.  set
0d90: 20 3a 3a 74 62 5f 73 71 6c 20 22 53 45 4c 45 43   ::tb_sql "SELEC
0da0: 54 20 72 6f 77 69 64 20 46 52 4f 4d 20 74 32 20  T rowid FROM t2 
0db0: 57 48 45 52 45 20 24 77 68 65 72 65 22 0a 20 20  WHERE $where".  
0dc0: 64 6f 5f 74 65 73 74 20 24 74 65 73 74 6e 61 6d  do_test $testnam
0dd0: 65 20 7b 0a 20 20 20 20 6c 73 6f 72 74 20 2d 69  e {.    lsort -i
0de0: 6e 74 65 67 65 72 20 5b 65 78 65 63 73 71 6c 20  nteger [execsql 
0df0: 24 3a 3a 74 62 5f 73 71 6c 5d 0a 20 20 7d 20 24  $::tb_sql].  } $
0e00: 73 65 74 0a 7d 0a 0a 74 65 73 74 5f 62 6f 6f 6c  set.}..test_bool
0e10: 73 65 74 20 74 79 70 65 73 32 2d 32 2e 31 20 7b  set types2-2.1 {
0e20: 69 20 3d 20 31 30 7d 20 7b 31 20 32 20 33 20 34  i = 10} {1 2 3 4
0e30: 7d 0a 74 65 73 74 5f 62 6f 6f 6c 73 65 74 20 74  }.test_boolset t
0e40: 79 70 65 73 32 2d 32 2e 32 20 7b 69 20 3d 20 31  ypes2-2.2 {i = 1
0e50: 30 2e 30 7d 20 7b 31 20 32 20 33 20 34 7d 0a 74  0.0} {1 2 3 4}.t
0e60: 65 73 74 5f 62 6f 6f 6c 73 65 74 20 74 79 70 65  est_boolset type
0e70: 73 32 2d 32 2e 33 20 7b 69 20 3d 20 27 31 30 27  s2-2.3 {i = '10'
0e80: 7d 20 7b 31 20 32 20 33 20 34 7d 0a 74 65 73 74  } {1 2 3 4}.test
0e90: 5f 62 6f 6f 6c 73 65 74 20 74 79 70 65 73 32 2d  _boolset types2-
0ea0: 32 2e 34 20 7b 69 20 3d 20 27 31 30 2e 30 27 7d  2.4 {i = '10.0'}
0eb0: 20 7b 31 20 32 20 33 20 34 7d 0a 0a 74 65 73 74   {1 2 3 4}..test
0ec0: 5f 62 6f 6f 6c 73 65 74 20 74 79 70 65 73 32 2d  _boolset types2-
0ed0: 32 2e 35 20 7b 6e 20 3d 20 32 30 7d 20 7b 35 20  2.5 {n = 20} {5 
0ee0: 36 20 37 20 38 7d 0a 74 65 73 74 5f 62 6f 6f 6c  6 7 8}.test_bool
0ef0: 73 65 74 20 74 79 70 65 73 32 2d 32 2e 36 20 7b  set types2-2.6 {
0f00: 6e 20 3d 20 32 30 2e 30 7d 20 7b 35 20 36 20 37  n = 20.0} {5 6 7
0f10: 20 38 7d 0a 74 65 73 74 5f 62 6f 6f 6c 73 65 74   8}.test_boolset
0f20: 20 74 79 70 65 73 32 2d 32 2e 37 20 7b 6e 20 3d   types2-2.7 {n =
0f30: 20 27 32 30 27 7d 20 7b 35 20 36 20 37 20 38 7d   '20'} {5 6 7 8}
0f40: 0a 74 65 73 74 5f 62 6f 6f 6c 73 65 74 20 74 79  .test_boolset ty
0f50: 70 65 73 32 2d 32 2e 38 20 7b 6e 20 3d 20 27 32  pes2-2.8 {n = '2
0f60: 30 2e 30 27 7d 20 7b 35 20 36 20 37 20 38 7d 0a  0.0'} {5 6 7 8}.
0f70: 0a 74 65 73 74 5f 62 6f 6f 6c 73 65 74 20 74 79  .test_boolset ty
0f80: 70 65 73 32 2d 32 2e 39 20 7b 74 20 3d 20 32 30  pes2-2.9 {t = 20
0f90: 7d 20 7b 35 20 37 7d 0a 74 65 73 74 5f 62 6f 6f  } {5 7}.test_boo
0fa0: 6c 73 65 74 20 74 79 70 65 73 32 2d 32 2e 31 30  lset types2-2.10
0fb0: 20 7b 74 20 3d 20 32 30 2e 30 7d 20 7b 36 20 38   {t = 20.0} {6 8
0fc0: 7d 0a 74 65 73 74 5f 62 6f 6f 6c 73 65 74 20 74  }.test_boolset t
0fd0: 79 70 65 73 32 2d 32 2e 31 31 20 7b 74 20 3d 20  ypes2-2.11 {t = 
0fe0: 27 32 30 27 7d 20 7b 35 20 37 7d 0a 74 65 73 74  '20'} {5 7}.test
0ff0: 5f 62 6f 6f 6c 73 65 74 20 74 79 70 65 73 32 2d  _boolset types2-
1000: 32 2e 31 32 20 7b 74 20 3d 20 27 32 30 2e 30 27  2.12 {t = '20.0'
1010: 7d 20 7b 36 20 38 7d 0a 0a 74 65 73 74 5f 62 6f  } {6 8}..test_bo
1020: 6f 6c 73 65 74 20 74 79 70 65 73 32 2d 32 2e 31  olset types2-2.1
1030: 30 20 7b 6f 20 3d 20 33 30 7d 20 7b 39 20 31 30  0 {o = 30} {9 10
1040: 7d 0a 74 65 73 74 5f 62 6f 6f 6c 73 65 74 20 74  }.test_boolset t
1050: 79 70 65 73 32 2d 32 2e 31 31 20 7b 6f 20 3d 20  ypes2-2.11 {o = 
1060: 33 30 2e 30 7d 20 7b 39 20 31 30 7d 0a 74 65 73  30.0} {9 10}.tes
1070: 74 5f 62 6f 6f 6c 73 65 74 20 74 79 70 65 73 32  t_boolset types2
1080: 2d 32 2e 31 32 20 7b 6f 20 3d 20 27 33 30 27 7d  -2.12 {o = '30'}
1090: 20 31 31 0a 74 65 73 74 5f 62 6f 6f 6c 73 65 74   11.test_boolset
10a0: 20 74 79 70 65 73 32 2d 32 2e 31 33 20 7b 6f 20   types2-2.13 {o 
10b0: 3d 20 27 33 30 2e 30 27 7d 20 31 32 0a 0a 74 65  = '30.0'} 12..te
10c0: 73 74 5f 62 6f 6f 6c 73 65 74 20 74 79 70 65 73  st_boolset types
10d0: 32 2d 33 2e 31 20 7b 69 20 3c 20 32 30 7d 20 7b  2-3.1 {i < 20} {
10e0: 31 20 32 20 33 20 34 7d 0a 74 65 73 74 5f 62 6f  1 2 3 4}.test_bo
10f0: 6f 6c 73 65 74 20 74 79 70 65 73 32 2d 33 2e 32  olset types2-3.2
1100: 20 7b 69 20 3c 20 32 30 2e 30 7d 20 7b 31 20 32   {i < 20.0} {1 2
1110: 20 33 20 34 7d 0a 74 65 73 74 5f 62 6f 6f 6c 73   3 4}.test_bools
1120: 65 74 20 74 79 70 65 73 32 2d 33 2e 33 20 7b 69  et types2-3.3 {i
1130: 20 3c 20 27 32 30 27 7d 20 7b 31 20 32 20 33 20   < '20'} {1 2 3 
1140: 34 7d 0a 74 65 73 74 5f 62 6f 6f 6c 73 65 74 20  4}.test_boolset 
1150: 74 79 70 65 73 32 2d 33 2e 34 20 7b 69 20 3c 20  types2-3.4 {i < 
1160: 27 32 30 2e 30 27 7d 20 7b 31 20 32 20 33 20 34  '20.0'} {1 2 3 4
1170: 7d 0a 0a 74 65 73 74 5f 62 6f 6f 6c 73 65 74 20  }..test_boolset 
1180: 74 79 70 65 73 32 2d 33 2e 31 20 7b 6e 20 3c 20  types2-3.1 {n < 
1190: 32 30 7d 20 7b 31 20 32 20 33 20 34 7d 0a 74 65  20} {1 2 3 4}.te
11a0: 73 74 5f 62 6f 6f 6c 73 65 74 20 74 79 70 65 73  st_boolset types
11b0: 32 2d 33 2e 32 20 7b 6e 20 3c 20 32 30 2e 30 7d  2-3.2 {n < 20.0}
11c0: 20 7b 31 20 32 20 33 20 34 7d 0a 74 65 73 74 5f   {1 2 3 4}.test_
11d0: 62 6f 6f 6c 73 65 74 20 74 79 70 65 73 32 2d 33  boolset types2-3
11e0: 2e 33 20 7b 6e 20 3c 20 27 32 30 27 7d 20 7b 31  .3 {n < '20'} {1
11f0: 20 32 20 33 20 34 7d 0a 74 65 73 74 5f 62 6f 6f   2 3 4}.test_boo
1200: 6c 73 65 74 20 74 79 70 65 73 32 2d 33 2e 34 20  lset types2-3.4 
1210: 7b 6e 20 3c 20 27 32 30 2e 30 27 7d 20 7b 31 20  {n < '20.0'} {1 
1220: 32 20 33 20 34 7d 0a 0a 74 65 73 74 5f 62 6f 6f  2 3 4}..test_boo
1230: 6c 73 65 74 20 74 79 70 65 73 32 2d 33 2e 31 20  lset types2-3.1 
1240: 7b 74 20 3c 20 32 30 7d 20 7b 31 20 32 20 33 20  {t < 20} {1 2 3 
1250: 34 7d 0a 74 65 73 74 5f 62 6f 6f 6c 73 65 74 20  4}.test_boolset 
1260: 74 79 70 65 73 32 2d 33 2e 32 20 7b 74 20 3c 20  types2-3.2 {t < 
1270: 32 30 2e 30 7d 20 7b 31 20 32 20 33 20 34 20 35  20.0} {1 2 3 4 5
1280: 20 37 7d 0a 74 65 73 74 5f 62 6f 6f 6c 73 65 74   7}.test_boolset
1290: 20 74 79 70 65 73 32 2d 33 2e 33 20 7b 74 20 3c   types2-3.3 {t <
12a0: 20 27 32 30 27 7d 20 7b 31 20 32 20 33 20 34 7d   '20'} {1 2 3 4}
12b0: 0a 74 65 73 74 5f 62 6f 6f 6c 73 65 74 20 74 79  .test_boolset ty
12c0: 70 65 73 32 2d 33 2e 34 20 7b 74 20 3c 20 27 32  pes2-3.4 {t < '2
12d0: 30 2e 30 27 7d 20 7b 31 20 32 20 33 20 34 20 35  0.0'} {1 2 3 4 5
12e0: 20 37 7d 0a 0a 74 65 73 74 5f 62 6f 6f 6c 73 65   7}..test_boolse
12f0: 74 20 74 79 70 65 73 32 2d 33 2e 31 20 7b 6f 20  t types2-3.1 {o 
1300: 3c 20 32 30 7d 20 7b 31 20 32 7d 0a 74 65 73 74  < 20} {1 2}.test
1310: 5f 62 6f 6f 6c 73 65 74 20 74 79 70 65 73 32 2d  _boolset types2-
1320: 33 2e 32 20 7b 6f 20 3c 20 32 30 2e 30 7d 20 7b  3.2 {o < 20.0} {
1330: 31 20 32 7d 0a 74 65 73 74 5f 62 6f 6f 6c 73 65  1 2}.test_boolse
1340: 74 20 74 79 70 65 73 32 2d 33 2e 33 20 7b 6f 20  t types2-3.3 {o 
1350: 3c 20 27 32 30 27 7d 20 7b 31 20 32 20 33 20 34  < '20'} {1 2 3 4
1360: 20 35 20 36 20 39 20 31 30 7d 0a 74 65 73 74 5f   5 6 9 10}.test_
1370: 62 6f 6f 6c 73 65 74 20 74 79 70 65 73 32 2d 33  boolset types2-3
1380: 2e 33 20 7b 6f 20 3c 20 27 32 30 2e 30 27 7d 20  .3 {o < '20.0'} 
1390: 7b 31 20 32 20 33 20 34 20 35 20 36 20 37 20 39  {1 2 3 4 5 6 7 9
13a0: 20 31 30 7d 0a 0a 23 20 43 6f 6d 70 61 72 65 20   10}..# Compare 
13b0: 6c 69 74 65 72 61 6c 73 20 61 67 61 69 6e 73 74  literals against
13c0: 20 6c 69 74 65 72 61 6c 73 0a 74 65 73 74 5f 62   literals.test_b
13d0: 6f 6f 6c 20 74 79 70 65 73 32 2d 34 2e 31 20 22  ool types2-4.1 "
13e0: 22 20 7b 35 30 30 20 3e 20 36 30 2e 30 7d 20 31  " {500 > 60.0} 1
13f0: 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65 73  .test_bool types
1400: 32 2d 34 2e 32 20 22 22 20 7b 27 35 30 30 27 20  2-4.2 "" {'500' 
1410: 3e 20 36 30 2e 30 7d 20 31 0a 74 65 73 74 5f 62  > 60.0} 1.test_b
1420: 6f 6f 6c 20 74 79 70 65 73 32 2d 34 2e 33 20 22  ool types2-4.3 "
1430: 22 20 7b 35 30 30 20 3e 20 27 36 30 2e 30 27 7d  " {500 > '60.0'}
1440: 20 31 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70   1.test_bool typ
1450: 65 73 32 2d 34 2e 34 20 22 22 20 7b 27 35 30 30  es2-4.4 "" {'500
1460: 27 20 3e 20 27 36 30 2e 30 27 7d 20 30 0a 0a 23  ' > '60.0'} 0..#
1470: 20 43 6f 6d 70 61 72 65 20 6c 69 74 65 72 61 6c   Compare literal
1480: 73 20 61 67 61 69 6e 73 74 20 61 20 63 6f 6c 75  s against a colu
1490: 6d 6e 20 77 69 74 68 20 54 45 58 54 20 61 66 66  mn with TEXT aff
14a0: 69 6e 69 74 79 0a 74 65 73 74 5f 62 6f 6f 6c 20  inity.test_bool 
14b0: 74 79 70 65 73 32 2d 34 2e 35 20 7b 74 31 3d 35  types2-4.5 {t1=5
14c0: 30 30 2e 30 7d 20 7b 74 31 20 3e 20 35 30 30 7d  00.0} {t1 > 500}
14d0: 20 31 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70   1.test_bool typ
14e0: 65 73 32 2d 34 2e 36 20 7b 74 31 3d 35 30 30 2e  es2-4.6 {t1=500.
14f0: 30 7d 20 7b 74 31 20 3e 20 27 35 30 30 27 20 7d  0} {t1 > '500' }
1500: 20 31 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70   1.test_bool typ
1510: 65 73 32 2d 34 2e 37 20 7b 74 31 3d 35 30 30 2e  es2-4.7 {t1=500.
1520: 30 7d 20 7b 74 31 20 3e 20 35 30 30 2e 30 20 7d  0} {t1 > 500.0 }
1530: 20 30 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70   0.test_bool typ
1540: 65 73 32 2d 34 2e 38 20 7b 74 31 3d 35 30 30 2e  es2-4.8 {t1=500.
1550: 30 7d 20 7b 74 31 20 3e 20 27 35 30 30 2e 30 27  0} {t1 > '500.0'
1560: 20 7d 20 30 0a 74 65 73 74 5f 62 6f 6f 6c 20 74   } 0.test_bool t
1570: 79 70 65 73 32 2d 34 2e 39 20 7b 74 31 3d 27 35  ypes2-4.9 {t1='5
1580: 30 30 2e 30 27 7d 20 7b 74 31 20 3e 20 35 30 30  00.0'} {t1 > 500
1590: 20 7d 20 31 0a 74 65 73 74 5f 62 6f 6f 6c 20 74   } 1.test_bool t
15a0: 79 70 65 73 32 2d 34 2e 31 30 20 7b 74 31 3d 27  ypes2-4.10 {t1='
15b0: 35 30 30 2e 30 27 7d 20 7b 74 31 20 3e 20 27 35  500.0'} {t1 > '5
15c0: 30 30 27 20 7d 20 31 0a 74 65 73 74 5f 62 6f 6f  00' } 1.test_boo
15d0: 6c 20 74 79 70 65 73 32 2d 34 2e 31 31 20 7b 74  l types2-4.11 {t
15e0: 31 3d 27 35 30 30 2e 30 27 7d 20 7b 74 31 20 3e  1='500.0'} {t1 >
15f0: 20 35 30 30 2e 30 20 7d 20 30 0a 74 65 73 74 5f   500.0 } 0.test_
1600: 62 6f 6f 6c 20 74 79 70 65 73 32 2d 34 2e 31 32  bool types2-4.12
1610: 20 7b 74 31 3d 27 35 30 30 2e 30 27 7d 20 7b 74   {t1='500.0'} {t
1620: 31 20 3e 20 27 35 30 30 2e 30 27 20 7d 20 30 0a  1 > '500.0' } 0.
1630: 0a 23 20 43 6f 6d 70 61 72 65 20 6c 69 74 65 72  .# Compare liter
1640: 61 6c 73 20 61 67 61 69 6e 73 74 20 61 20 63 6f  als against a co
1650: 6c 75 6d 6e 20 77 69 74 68 20 4e 55 4d 45 52 49  lumn with NUMERI
1660: 43 20 61 66 66 69 6e 69 74 79 0a 74 65 73 74 5f  C affinity.test_
1670: 62 6f 6f 6c 20 74 79 70 65 73 32 2d 34 2e 31 33  bool types2-4.13
1680: 20 7b 6e 31 3d 34 30 30 7d 20 7b 35 30 30 20 3e   {n1=400} {500 >
1690: 20 6e 31 7d 20 31 0a 74 65 73 74 5f 62 6f 6f 6c   n1} 1.test_bool
16a0: 20 74 79 70 65 73 32 2d 34 2e 31 34 20 7b 6e 31   types2-4.14 {n1
16b0: 3d 34 30 30 7d 20 7b 27 35 30 30 27 20 3e 20 6e  =400} {'500' > n
16c0: 31 7d 20 31 0a 74 65 73 74 5f 62 6f 6f 6c 20 74  1} 1.test_bool t
16d0: 79 70 65 73 32 2d 34 2e 31 35 20 7b 6e 31 3d 34  ypes2-4.15 {n1=4
16e0: 30 30 7d 20 7b 35 30 30 2e 30 20 3e 20 6e 31 7d  00} {500.0 > n1}
16f0: 20 31 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70   1.test_bool typ
1700: 65 73 32 2d 34 2e 31 36 20 7b 6e 31 3d 34 30 30  es2-4.16 {n1=400
1710: 7d 20 7b 27 35 30 30 2e 30 27 20 3e 20 6e 31 7d  } {'500.0' > n1}
1720: 20 31 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70   1.test_bool typ
1730: 65 73 32 2d 34 2e 31 37 20 7b 6e 31 3d 27 34 30  es2-4.17 {n1='40
1740: 30 27 7d 20 7b 35 30 30 20 3e 20 6e 31 7d 20 31  0'} {500 > n1} 1
1750: 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65 73  .test_bool types
1760: 32 2d 34 2e 31 38 20 7b 6e 31 3d 27 34 30 30 27  2-4.18 {n1='400'
1770: 7d 20 7b 27 35 30 30 27 20 3e 20 6e 31 7d 20 31  } {'500' > n1} 1
1780: 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65 73  .test_bool types
1790: 32 2d 34 2e 31 39 20 7b 6e 31 3d 27 34 30 30 27  2-4.19 {n1='400'
17a0: 7d 20 7b 35 30 30 2e 30 20 3e 20 6e 31 7d 20 31  } {500.0 > n1} 1
17b0: 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65 73  .test_bool types
17c0: 32 2d 34 2e 32 30 20 7b 6e 31 3d 27 34 30 30 27  2-4.20 {n1='400'
17d0: 7d 20 7b 27 35 30 30 2e 30 27 20 3e 20 6e 31 7d  } {'500.0' > n1}
17e0: 20 31 0a 0a 23 20 43 6f 6d 70 61 72 65 20 6c 69   1..# Compare li
17f0: 74 65 72 61 6c 73 20 61 67 61 69 6e 73 74 20 61  terals against a
1800: 20 63 6f 6c 75 6d 6e 20 77 69 74 68 20 61 66 66   column with aff
1810: 69 6e 69 74 79 20 4e 4f 4e 45 0a 74 65 73 74 5f  inity NONE.test_
1820: 62 6f 6f 6c 20 74 79 70 65 73 32 2d 34 2e 32 31  bool types2-4.21
1830: 20 7b 6f 31 3d 35 30 30 7d 20 7b 35 30 30 20 3e   {o1=500} {500 >
1840: 20 6f 31 7d 20 30 0a 74 65 73 74 5f 62 6f 6f 6c   o1} 0.test_bool
1850: 20 74 79 70 65 73 32 2d 34 2e 32 32 20 7b 6f 31   types2-4.22 {o1
1860: 3d 35 30 30 7d 20 7b 27 35 30 30 27 20 3e 20 6f  =500} {'500' > o
1870: 31 7d 20 31 0a 74 65 73 74 5f 62 6f 6f 6c 20 74  1} 1.test_bool t
1880: 79 70 65 73 32 2d 34 2e 32 33 20 7b 6f 31 3d 35  ypes2-4.23 {o1=5
1890: 30 30 7d 20 7b 35 30 30 2e 30 20 3e 20 6f 31 7d  00} {500.0 > o1}
18a0: 20 30 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70   0.test_bool typ
18b0: 65 73 32 2d 34 2e 32 34 20 7b 6f 31 3d 35 30 30  es2-4.24 {o1=500
18c0: 7d 20 7b 27 35 30 30 2e 30 27 20 3e 20 6f 31 7d  } {'500.0' > o1}
18d0: 20 31 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70   1.test_bool typ
18e0: 65 73 32 2d 34 2e 32 35 20 7b 6f 31 3d 27 35 30  es2-4.25 {o1='50
18f0: 30 27 7d 20 7b 35 30 30 20 3e 20 6f 31 7d 20 30  0'} {500 > o1} 0
1900: 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65 73  .test_bool types
1910: 32 2d 34 2e 32 36 20 7b 6f 31 3d 27 35 30 30 27  2-4.26 {o1='500'
1920: 7d 20 7b 27 35 30 30 27 20 3e 20 6f 31 7d 20 30  } {'500' > o1} 0
1930: 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65 73  .test_bool types
1940: 32 2d 34 2e 32 37 20 7b 6f 31 3d 27 35 30 30 27  2-4.27 {o1='500'
1950: 7d 20 7b 35 30 30 2e 30 20 3e 20 6f 31 7d 20 30  } {500.0 > o1} 0
1960: 0a 74 65 73 74 5f 62 6f 6f 6c 20 74 79 70 65 73  .test_bool types
1970: 32 2d 34 2e 32 38 20 7b 6f 31 3d 27 35 30 30 27  2-4.28 {o1='500'
1980: 7d 20 7b 27 35 30 30 2e 30 27 20 3e 20 6f 31 7d  } {'500.0' > o1}
1990: 20 31 0a 0a 66 69 6e 69 73 68 5f 74 65 73 74 0a   1..finish_test.
19a0: 0a 0a                                            ..