anchor.diff:  open deopletefs.FSharpIntellisence
   
   let check  x y  =
  +  stdout.WriteLine " ----------------------------------- "
     if x = y then
  -    "OK!: "|> stdout.WriteLine
  +    "OK" |> printfn "%A"
  +    x |> printfn "%A"
  +    y |> printfn "%A"
     else
  -    "NG!: "|> stdout.WriteLine
  +    "NG" |> printfn "%A"
  +    x |> printfn "%A"
  +    y |> printfn "%A"
  +    raise (System.ArgumentException("===== NG =====") )
   
   let encode64 (s:string) =
       System.Convert.ToBase64String( System.Text.Encoding.UTF8.GetBytes( s ) )
  
positive.code:     check [|"System"|]        ( nameSpaceArrayImpl "System." )
      check [|"System";"Text"|] ( nameSpaceArrayImpl "System.Text" )
      check [|"System";"Text"|] ( nameSpaceArrayImpl "System.Text." )
  test_of_nameSpaceArrayImpl
  
  let test_of_nameSpaceArray =
      check [|"System"|]        ( nameSpaceArrayImpl "System" )
      check [|"System"|]        ( nameSpaceArrayImpl "System." )
      check [|"System";"Text"|] ( nameSpaceArrayImpl "System.Text" )
  
negative.code:     check "System.Math" ( angleBracket "typeof<System.Math" )
      check "System.Math" ( angleBracket "typeof<System.Math>" )
      check "typeof"      ( angleBracket "typeof<System.Math>." )
  test_of_nameSpaceArray ()
  
  let test_of_previousDot () =
      // do! assertEquals "abc" ( previousDot "System" ) // error
      check "System."                               ( previousDot "System.Text")
      check "System.Text."                          ( previousDot "System.Text.RegularExpressions")
      check "System.Text.RegularExpressions."       ( previousDot "System.Text.RegularExpressions.Regex")
      check "System.Text.RegularExpressions.Regex." ( previousDot "System.Text.RegularExpressions.Regex.Split")
  test_of_previousDot ()
  
  let test_of_openCount () =
      check 0 (openCount "")
      check 1 (openCount "open")
      check 2 (openCount "open \n open")
      check 3 (openCount "open \n open \n open")
  test_of_openCount ()
  
  let test_of_msgForDeoplete () =
      check """{"word":"abc","info":[[""]]}""" ( decode64( msgForDeoplete "abc" ) )
  test_of_msgForDeoplete ()
  
  stdout.WriteLine "\n===== autocomplete check ====="
  
  let initialize_deopleteExe () =
    let json = """{ "Row" : -9999 ,"Col": 1, "Line": "", "FilePath" : "./dummy.fsx", "Source" : "", "Init":"true"}"""
    let resultString = """{"word":"finish initialize!","info":[[""]]}"""
    // replyer.Send(json)
    // wait for lunch time :-)  It's imortant!
    // System.Threading.Thread.Sleep 10000
    check (decode64( replyer.sendRecieve(json).Data )) resultString
  
  initialize_deopleteExe ()
  
  
  let List_Cons () =
      let json           = """{ "Row" : 1 ,"Col": 5, "Line": "List.", "FilePath" : "./dummy.fsx", "Source" : "", "Init":"false"}"""
      // replyer.Send(json)
      // System.Threading.Thread.Sleep 500
      let ListFuncs      = ( decode64( replyer.sendRecieve(json).Data ) ).Split('\n') |> fun ary -> ary.[0]
      let resultString   = JsonConvert.DeserializeObject<deopletefs.JsonFormat>(ListFuncs).word
      let expectedString = "Cons"
      check expectedString resultString
  