@@ -1463,50 +1463,25 @@ end
14631463
14641464 df = copy (refdf)
14651465 v1 = df[! , 1 ]
1466- if isdefined (Base, :dotgetproperty ) # Introduced in Julia 1.7
1467- df. x1 .= ' d'
1468- @test df. x1 == [' d' , ' d' , ' d' ]
1469- @test eltype (df. x1) === Char
1470- @test_throws MethodError df[:, 1 ] .= " d"
1471- @test_throws DimensionMismatch df[:, 1 ] .= [1 2 3 ]
1472- @test v1 == [1.5 , 2.5 , 3.5 ]
1473- else
1474- df. x1 .= ' d'
1475- @test v1 == [100.0 , 100.0 , 100.0 ]
1476- @test_throws MethodError df[:, 1 ] .= " d"
1477- @test v1 == [100.0 , 100.0 , 100.0 ]
1478- @test_throws DimensionMismatch df[:, 1 ] .= [1 2 3 ]
1479- @test v1 == [100.0 , 100.0 , 100.0 ]
1480- end
1466+ df. x1 .= ' d'
1467+ @test df. x1 == [' d' , ' d' , ' d' ]
1468+ @test eltype (df. x1) === Char
1469+ @test_throws MethodError df[:, 1 ] .= " d"
1470+ @test_throws DimensionMismatch df[:, 1 ] .= [1 2 3 ]
1471+ @test v1 == [1.5 , 2.5 , 3.5 ]
14811472
1482- if isdefined (Base, :dotgetproperty ) # Introduced in Julia 1.7
1483- df = DataFrame (a= 1 : 4 , b= 1 , c= 2 )
1484- df. a .= ' a' :' d'
1485- @test df == DataFrame (a= ' a' :' d' , b= 1 , c= 2 )
1486- dfv = view (df, 2 : 3 , 2 : 3 )
1487- x = df. b
1488- dfv. b .= 0
1489- @test df. b == [1 , 0 , 0 , 1 ]
1490- @test x == [1 , 1 , 1 , 1 ]
1491- else
1492- df = DataFrame (a= 1 : 4 , b= 1 , c= 2 )
1493- df. a .= ' a' :' d'
1494- @test df == DataFrame (a= 97 : 100 , b= 1 , c= 2 )
1495- dfv = view (df, 2 : 3 , 2 : 3 )
1496- x = df. b
1497- dfv. b .= 0
1498- @test df. b == [1 , 0 , 0 , 1 ]
1499- @test x === df. b
1500- end
1473+ df = DataFrame (a= 1 : 4 , b= 1 , c= 2 )
1474+ df. a .= ' a' :' d'
1475+ @test df == DataFrame (a= ' a' :' d' , b= 1 , c= 2 )
1476+ dfv = view (df, 2 : 3 , 2 : 3 )
1477+ x = df. b
1478+ dfv. b .= 0
1479+ @test df. b == [1 , 0 , 0 , 1 ]
1480+ @test x == [1 , 1 , 1 , 1 ]
15011481
15021482 df = copy (refdf)
1503- if isdefined (Base, :dotgetproperty ) # Introduced in Julia 1.7
1504- df. newcol .= ' d'
1505- @test df == [refdf DataFrame (newcol= fill (' d' , 3 ))]
1506- else
1507- @test_throws ArgumentError df. newcol .= ' d'
1508- @test df == refdf
1509- end
1483+ df. newcol .= ' d'
1484+ @test df == [refdf DataFrame (newcol= fill (' d' , 3 ))]
15101485
15111486 df = view (copy (refdf), :, :)
15121487 v1 = df[! , 1 ]
@@ -1637,31 +1612,17 @@ end
16371612
16381613 df = view (copy (refdf), :, :)
16391614 v1 = df[! , 1 ]
1640- if isdefined (Base, :dotgetproperty ) # Introduced in Julia 1.7
1641- df. x1 .= ' d'
1642- @test df. x1 == [' d' , ' d' , ' d' ]
1643- @test eltype (df. x1) === Any
1644- df[:, 1 ] .= " d"
1645- @test df. x1 == [" d" , " d" , " d" ]
1646- @test_throws DimensionMismatch df[:, 1 ] .= [1 2 3 ]
1647- @test v1 == [1.5 , 2.5 , 3.5 ]
1648- else
1649- df. x1 .= ' d'
1650- @test v1 == [100.0 , 100.0 , 100.0 ]
1651- @test_throws MethodError df[:, 1 ] .= " d"
1652- @test v1 == [100.0 , 100.0 , 100.0 ]
1653- @test_throws DimensionMismatch df[:, 1 ] .= [1 2 3 ]
1654- @test v1 == [100.0 , 100.0 , 100.0 ]
1655- end
1615+ df. x1 .= ' d'
1616+ @test df. x1 == [' d' , ' d' , ' d' ]
1617+ @test eltype (df. x1) === Any
1618+ df[:, 1 ] .= " d"
1619+ @test df. x1 == [" d" , " d" , " d" ]
1620+ @test_throws DimensionMismatch df[:, 1 ] .= [1 2 3 ]
1621+ @test v1 == [1.5 , 2.5 , 3.5 ]
16561622
16571623 df = view (copy (refdf), :, :)
1658- if VERSION >= v " 1.7"
1659- df. newcol .= ' d'
1660- @test df. newcol == fill (' d' , 3 )
1661- else
1662- @test_throws ArgumentError df. newcol .= ' d'
1663- @test df == refdf
1664- end
1624+ df. newcol .= ' d'
1625+ @test df. newcol == fill (' d' , 3 )
16651626end
16661627
16671628@testset " DataFrameRow getproperty broadcasted assignment" begin
@@ -1910,47 +1871,28 @@ end
19101871
19111872@testset " broadcasting of getproperty" begin
19121873 df = DataFrame (a= 1 : 4 )
1913- if isdefined (Base, :dotgetproperty ) # Introduced in Julia 1.7
1914- df. b .= 1
1915- x = df. b
1916- df. c .= 4 : - 1 : 1
1917- df. a .= ' a' :' d'
1918- @test df. a isa Vector{Char}
1919- @test df == DataFrame (a= ' a' :' d' , b= 1 , c= 4 : - 1 : 1 )
1920-
1921- # in views also column replacement is performed
1922- dfv = view (df, 2 : 3 , 2 : 3 )
1923- dfv. b .= 0
1924- @test x == [1 , 1 , 1 , 1 ]
1925- @test df. b != = x
1926- @test df == DataFrame (a= ' a' :' d' , b= [1 , 0 , 0 , 1 ], c= 4 : - 1 : 1 )
1927- dfv. c .= [" p" , " q" ]
1928- @test df == DataFrame (a= ' a' :' d' , b= [1 , 0 , 0 , 1 ], c= [4 , " p" , " q" , 1 ])
1929- else
1930- # Julia older than 1.7
1931- df[! , :b ] .= 1
1932- x = df. b
1933- df[! , :c ] .= 4 : - 1 : 1
1934- df. a .= ' a' :' d'
1935- dfv = view (df, 2 : 3 , 2 : 3 )
1936- dfv. b .= 0
1937- @test x == [1 , 0 , 0 , 1 ]
1938- @test df. b === x
1939- @test df == DataFrame (a= 97 : 100 , b= [1 , 0 , 0 , 1 ], c= 4 : - 1 : 1 )
1940- @test_throws MethodError dfv. c .= [" p" , " q" ]
1941- @test df == DataFrame (a= 97 : 100 , b= [1 , 0 , 0 , 1 ], c= [4 , 3 , 2 , 1 ])
1942- end
1874+ df. b .= 1
1875+ x = df. b
1876+ df. c .= 4 : - 1 : 1
1877+ df. a .= ' a' :' d'
1878+ @test df. a isa Vector{Char}
1879+ @test df == DataFrame (a= ' a' :' d' , b= 1 , c= 4 : - 1 : 1 )
1880+
1881+ # in views also column replacement is performed
1882+ dfv = view (df, 2 : 3 , 2 : 3 )
1883+ dfv. b .= 0
1884+ @test x == [1 , 1 , 1 , 1 ]
1885+ @test df. b != = x
1886+ @test df == DataFrame (a= ' a' :' d' , b= [1 , 0 , 0 , 1 ], c= 4 : - 1 : 1 )
1887+ dfv. c .= [" p" , " q" ]
1888+ @test df == DataFrame (a= ' a' :' d' , b= [1 , 0 , 0 , 1 ], c= [4 , " p" , " q" , 1 ])
19431889end
19441890
19451891@testset " dotgetproperty on SubDataFrame" begin
19461892 df = DataFrame (a= 1 : 3 , b= 4 : 6 )
19471893 dfv = @view df[[3 , 1 ], :]
1948- if isdefined (Base, :dotgetproperty ) # Introduced in Julia 1.7
1949- dfv. c .= [1 , 2 ]
1950- @test df ≅ DataFrame (a= 1 : 3 , b= 4 : 6 , c= [2 , missing , 1 ])
1951- else
1952- @test_throws ArgumentError dfv. c .= [1 , 2 ]
1953- end
1894+ dfv. c .= [1 , 2 ]
1895+ @test df ≅ DataFrame (a= 1 : 3 , b= 4 : 6 , c= [2 , missing , 1 ])
19541896
19551897 df = DataFrame (a= 1 : 3 , b= 4 : 6 )
19561898 dfv = @view df[[3 , 1 ], 1 : 2 ]
0 commit comments