```# Test file for Julia

# Comment

#= Multi-line
comment =#

#BEGIN

#END

using Random, LinearAlgebra
x = 1 + 1
using DataFrames, Tables,
HDF5, # this is a comment
Plots
using DataFrames, Tables,

# this is a comment
Plots
x = x ยฑ 2
using SparseArrays: SparseMatrixCSC
using Sockets: Sockets, connect,
listen,
x = x^3
using Statistics:
std,
stdm

"""
Multi-line string
"""
```
Multi-line command
```
raw"string\a\\a"

"string \$testvar interpolation"
"string \\$testvar interpolation"
"string \$(collect(1:10) .^ 3) interpolation"
"string \\$(collect(1:10) .^ 3) interpolation"

let z = zip(1:2, 3:4, 5:6)
@test size(z) == (2,)
@test collect(z) == [(1,3,5), (2,4,6)]
@test eltype(z) == Tuple{Int,Int,Int}
end

@testset "generic conversion from Integer" begin
x = rand(Int128)
@test BigInt(x) % Int128 === x
y = rand(UInt128)
@test BigInt(y) % UInt128 === y
end

@testset "show" begin
@test sprint(show, BitSet()) == "BitSet([])"
@test sprint(show, BitSet([1,2,3])) == "BitSet([1, 2, 3])"
show(IOBuffer(), BitSet())
end

cmd = `\$(Base.julia_cmd()) --depwarn=error --startup-file=no boundscheck_exec.jl`
if !success(pipeline(cmd; stdout=stdout, stderr=stderr))
error("boundscheck test failed, cmd : \$cmd")
end

@test iterate(I, CartesianIndex(3, typemax(Int)))[1] == CartesianIndex(4,typemax(Int))
@test iterate(I, CartesianIndex(4, typemax(Int)))    === nothing
@test_throws MethodError write(IOBuffer(), ASCIIChar('x'))

let header = "julia [switches] -- [programfile] [args...]"
end

@test isequal(exp(complex( Inf, NaN)), complex(-Inf, NaN))
@test isequal(exp(complex( Inf, Inf)), complex(-Inf, NaN))

# Numbers
0b10
0o01_70
0x00000000000000001111_22_2233334444
-0x0002im
1.0e10
0.00025f0
-1.5_5f0
0x1.8p3
0x.4p-1
# Invalid number
0x000__22

chars = ['0', '1', '2', '3', 'a', 'b', 'c', 'd', 'e', 'X', 'Y', 'Z',
'๐ ', '๐ ', '๐ ', '๐ ', '๐ก', '๐ข', '๐ฃ', '๐ฎ']

@test docstrings_equal(@doc(ModuleMacroDoc), doc"I am a module")
match(r"^\s*(?:#|\$)", "# a comment")

abstract type Test2 end

function โabcโdef(a::Int,
b:: Int,
c::Dict{String, Int},
d:: Dict{String, Vector{eltype(var1)}},
f::AbstractVector{<:Number},
g::T,
h::T) where {T <: Number}
x::Int = 1
z = collect(1:10)
return z[3:end] .+ x .- a
end

mutable struct TestType <: AbstractVector{Number}
field1::Int
โfield2::Vector
end

struct ParametricType{T, V <: Tuple}
field1
field2::Float

function ParametricType{T, V}(r, d) where {T, V <: Tuple}
return new{T, V}(r, d)
end
end
```