summaryrefslogtreecommitdiffhomepage
path: root/test/drawing
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2011-11-20 23:22:04 +0900
committerRandy Morgan <[email protected]>2011-11-20 23:22:04 +0900
commite53f04284618713b0a90b7a691425c380e829476 (patch)
tree801fea138160f9af426d62bf94ad5bf97123ece9 /test/drawing
downloadcaxlsx-e53f04284618713b0a90b7a691425c380e829476.tar.gz
caxlsx-e53f04284618713b0a90b7a691425c380e829476.zip
first commit
Diffstat (limited to 'test/drawing')
-rw-r--r--test/drawing/tc_axis.rb39
-rw-r--r--test/drawing/tc_bar_3D_chart.rb66
-rw-r--r--test/drawing/tc_bar_series.rb34
-rw-r--r--test/drawing/tc_cat_axis.rb32
-rw-r--r--test/drawing/tc_chart.rb59
-rw-r--r--test/drawing/tc_drawing.rb71
-rw-r--r--test/drawing/tc_graphic_frame.rb26
-rw-r--r--test/drawing/tc_marker.rb45
-rw-r--r--test/drawing/tc_pie_3D_chart.rb33
-rw-r--r--test/drawing/tc_pie_series.rb35
-rw-r--r--test/drawing/tc_scaling.rb37
-rw-r--r--test/drawing/tc_series.rb24
-rw-r--r--test/drawing/tc_title.rb34
-rw-r--r--test/drawing/tc_two_cell_anchor.rb37
-rw-r--r--test/drawing/tc_val_axis.rb20
-rw-r--r--test/drawing/tc_view_3D.rb46
16 files changed, 638 insertions, 0 deletions
diff --git a/test/drawing/tc_axis.rb b/test/drawing/tc_axis.rb
new file mode 100644
index 00000000..6b08d842
--- /dev/null
+++ b/test/drawing/tc_axis.rb
@@ -0,0 +1,39 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestAxis < Test::Unit::TestCase
+ def setup
+ @axis = Axlsx::Axis.new 12345, 54321
+ end
+ def teardown
+ end
+
+ def test_initialization
+ assert_equal(@axis.axPos, :l, "axis position default incorrect")
+ assert_equal(@axis.tickLblPos, :nextTo, "tick label position default incorrect")
+ assert_equal(@axis.tickLblPos, :nextTo, "tick label position default incorrect")
+ assert_equal(@axis.crosses, :autoZero, "tick label position default incorrect")
+ assert(@axis.scaling.is_a?(Axlsx::Scaling) && @axis.scaling.orientation == :minMax, "scaling default incorrect")
+ end
+
+ def test_axis_position
+ assert_raise(ArgumentError, "requires valid axis position") { @axis.axPos = :nowhere }
+ assert_nothing_raised("accepts valid axis position") { @axis.axPos = :r }
+ end
+
+ def test_tick_label_position
+ assert_raise(ArgumentError, "requires valid tick label position") { @axis.tickLblPos = :nowhere }
+ assert_nothing_raised("accepts valid tick label position") { @axis.tickLblPos = :high }
+ end
+
+ def test_format_code
+ assert_raise(ArgumentError, "requires valid format code") { @axis.format_code = 1 }
+ assert_nothing_raised("accepts valid format code") { @axis.tickLblPos = :high }
+ end
+
+ def test_crosses
+ assert_raise(ArgumentError, "requires valid crosses") { @axis.crosses = 1 }
+ assert_nothing_raised("accepts valid crosses") { @axis.crosses = :min }
+ end
+
+end
diff --git a/test/drawing/tc_bar_3D_chart.rb b/test/drawing/tc_bar_3D_chart.rb
new file mode 100644
index 00000000..ff01464c
--- /dev/null
+++ b/test/drawing/tc_bar_3D_chart.rb
@@ -0,0 +1,66 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestBar3DChart < Test::Unit::TestCase
+
+ def setup
+ @p = Axlsx::Package.new
+ ws = @p.workbook.add_worksheet
+ @row = ws.add_row ["one", 1, Time.now]
+ @chart = ws.add_chart Axlsx::Bar3DChart, :title => "fishery"
+ end
+
+ def teardown
+ end
+
+ def test_initialization
+ assert_equal(@chart.grouping, :clustered, "grouping defualt incorrect")
+ assert_equal(@chart.series_type, Axlsx::BarSeries, "series type incorrect")
+ assert_equal(@chart.barDir, :bar, " bar direction incorrect")
+ assert(@chart.catAxis.is_a?(Axlsx::CatAxis), "category axis not created")
+ assert(@chart.valAxis.is_a?(Axlsx::ValAxis), "value access not created")
+ end
+
+ def test_bar_direction
+ assert_raise(ArgumentError, "require valid bar direction") { @chart.barDir = :left }
+ assert_nothing_raised("allow valid bar direction") { @chart.barDir = :col }
+ assert(@chart.barDir == :col)
+ end
+
+ def test_grouping
+ assert_raise(ArgumentError, "require valid grouping") { @chart.grouping = :inverted }
+ assert_nothing_raised("allow valid grouping") { @chart.grouping = :standard }
+ assert(@chart.grouping == :standard)
+ end
+
+
+ def test_gapWidth
+ assert_raise(ArgumentError, "require valid gap width") { @chart.gapWidth = 200 }
+ assert_nothing_raised("allow valid gapWidth") { @chart.gapWidth = "200%" }
+ assert(@chart.gapWidth == "200%")
+ end
+
+ def test_gapDepth
+ assert_raise(ArgumentError, "require valid gapDepth") { @chart.gapDepth = 200 }
+ assert_nothing_raised("allow valid gapDepth") { @chart.gapDepth = "200%" }
+ assert(@chart.gapDepth == "200%")
+ end
+
+ def test_shape
+ assert_raise(ArgumentError, "require valid shape") { @chart.shape = :star }
+ assert_nothing_raised("allow valid shape") { @chart.shape = :cone }
+ assert(@chart.shape == :cone)
+ end
+
+ def test_to_xml
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
+ doc = Nokogiri::XML(@chart.to_xml)
+ errors = []
+ schema.validate(doc).each do |error|
+ errors.push error
+ puts error.message
+ end
+ assert(errors.empty?, "error free validation")
+ end
+
+end
diff --git a/test/drawing/tc_bar_series.rb b/test/drawing/tc_bar_series.rb
new file mode 100644
index 00000000..1f0800f1
--- /dev/null
+++ b/test/drawing/tc_bar_series.rb
@@ -0,0 +1,34 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestBarSeries < Test::Unit::TestCase
+
+ def setup
+ p = Axlsx::Package.new
+ @ws = p.workbook.add_worksheet :name=>"hmmm"
+ chart = @ws.drawing.add_chart Axlsx::Bar3DChart, :title => "fishery"
+ @series = chart.add_series :data=>[0,1,2], :labels=>["zero", "one", "two"], :title=>"bob"
+ end
+
+ def test_initialize
+ assert_equal(@series.title, "bob", "series title has been applied")
+ assert_equal(@series.data, [0,1,2], "data option applied")
+ assert_equal(@series.labels, ["zero", "one","two"], "labels option applied")
+ assert_equal(@series.shape, :box, "series shape has been applied")
+ end
+
+ def test_data
+ assert_equal(@series.data, [0,1,2])
+ end
+
+ def test_labels
+ assert_equal(@series.labels, ["zero", "one", "two"])
+ end
+
+ def test_shape
+ assert_raise(ArgumentError, "require valid shape") { @series.shape = :teardropt }
+ assert_nothing_raised("allow valid shape") { @series.shape = :cone }
+ assert(@series.shape == :cone)
+ end
+
+end
diff --git a/test/drawing/tc_cat_axis.rb b/test/drawing/tc_cat_axis.rb
new file mode 100644
index 00000000..afecaf3b
--- /dev/null
+++ b/test/drawing/tc_cat_axis.rb
@@ -0,0 +1,32 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestCatAxis < Test::Unit::TestCase
+ def setup
+ @axis = Axlsx::CatAxis.new 12345, 54321
+ end
+ def teardown
+ end
+
+ def test_initialization
+ assert_equal(@axis.auto, true, "axis auto default incorrect")
+ assert_equal(@axis.lblAlgn, :ctr, "label align default incorrect")
+ assert_equal(@axis.lblOffset, "100%", "label offset default incorrect")
+ end
+
+ def test_auto
+ assert_raise(ArgumentError, "requires valid auto") { @axis.auto = :nowhere }
+ assert_nothing_raised("accepts valid auto") { @axis.auto = false }
+ end
+
+ def test_lblAlgn
+ assert_raise(ArgumentError, "requires valid label alignment") { @axis.lblAlgn = :nowhere }
+ assert_nothing_raised("accepts valid label alignment") { @axis.lblAlgn = :r }
+ end
+
+ def test_lblOffset
+ assert_raise(ArgumentError, "requires valid label offset") { @axis.lblOffset = 100 }
+ assert_nothing_raised("accepts valid label offset") { @axis.lblOffset = "20%" }
+ end
+
+end
diff --git a/test/drawing/tc_chart.rb b/test/drawing/tc_chart.rb
new file mode 100644
index 00000000..8e26a832
--- /dev/null
+++ b/test/drawing/tc_chart.rb
@@ -0,0 +1,59 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestChart < Test::Unit::TestCase
+
+ def setup
+ @p = Axlsx::Package.new
+ ws = @p.workbook.add_worksheet
+ @row = ws.add_row ["one", 1, Time.now]
+ @chart = ws.add_chart Axlsx::Bar3DChart, :title => "fishery"
+ end
+
+ def teardown
+ end
+
+ def test_initialization
+ assert_equal(@p.workbook.charts.last,@chart, "the chart is in the workbook")
+ assert_equal(@chart.title.text, "fishery", "the title option has been applied")
+ assert((@chart.series.is_a?(Axlsx::SimpleTypedList) && @chart.series.empty?), "The series is initialized and empty")
+ end
+
+ def test_title
+ @chart.title.text = 'wowzer'
+ assert_equal(@chart.title.text, "wowzer", "the title text via a string")
+ assert_equal(@chart.title.cell, nil, "the title cell is nil as we set the title with text.")
+ @chart.title.cell = @row.cells.first
+ assert_equal(@chart.title.text, "one", "the title text was set via cell reference")
+ assert_equal(@chart.title.cell, @row.cells.first)
+ end
+
+
+ def test_add_series
+ s = @chart.add_series :data=>[0,1,2,3], :labels => ["one", 1, "anything"], :title=>"bob"
+ assert_equal(@chart.series.last, s, "series has been added to chart series collection")
+ assert_equal(s.title, "bob", "series title has been applied")
+ assert_equal(s.data, [0,1,2,3], "data option applied")
+ assert_equal(s.labels, ["one",1,"anything"], "labels option applied")
+ end
+
+ def test_create_range
+
+ end
+
+ def test_pn
+ assert_equal(@chart.pn, "charts/chart1.xml")
+ end
+
+ def test_to_xml
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
+ doc = Nokogiri::XML(@chart.to_xml)
+ errors = []
+ schema.validate(doc).each do |error|
+ errors.push error
+ puts error.message
+ end
+ assert(errors.empty?, "error free validation")
+ end
+
+end
diff --git a/test/drawing/tc_drawing.rb b/test/drawing/tc_drawing.rb
new file mode 100644
index 00000000..474f5b51
--- /dev/null
+++ b/test/drawing/tc_drawing.rb
@@ -0,0 +1,71 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestDrawing < Test::Unit::TestCase
+ def setup
+ p = Axlsx::Package.new
+ @ws = p.workbook.add_worksheet
+
+ end
+
+ def test_initialization
+ assert(@ws.workbook.drawings.empty?)
+ assert_equal(@ws.drawing, @ws.workbook.drawings.last, "drawing is added to workbook")
+ assert(@ws.drawing.anchors.is_a?(Axlsx::SimpleTypedList) && @ws.drawing.anchors.empty?, "anchor list is created and empty")
+ end
+
+ def test_add_chart
+ chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
+ assert(chart.is_a?(Axlsx::Pie3DChart), "must create a chart")
+ assert_equal(@ws.workbook.charts.last, chart, "must be added to workbook charts collection")
+ assert_equal(@ws.drawing.anchors.last.graphic_frame.chart, chart, "an anchor has been created and holds a reference to this chart")
+ anchor = @ws.drawing.anchors.last
+ assert_equal([anchor.from.row, anchor.from.col], [0,0], "options for start at are applied")
+ assert_equal([anchor.to.row, anchor.to.col], [1,1], "options for start at are applied")
+ assert_equal(chart.title.text, "bob", "option for title is applied")
+ end
+
+ def test_charts
+ assert(@ws.drawing.charts.empty?)
+ chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
+ assert_equal(@ws.drawing.charts.last, chart, "add chart is returned")
+ chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"nancy", :start_at=>[1,5], :end_at=>[5,10])
+ assert_equal(@ws.drawing.charts.last, chart, "add chart is returned")
+ end
+
+ def test_pn
+ assert_equal(@ws.drawing.pn, "drawings/drawing1.xml")
+ end
+
+ def test_rels_pn
+ assert_equal(@ws.drawing.rels_pn, "drawings/_rels/drawing1.xml.rels")
+ end
+
+ def test_rId
+ assert_equal(@ws.drawing.rId, "rId1")
+ end
+
+ def test_index
+ assert_equal(@ws.drawing.index, @ws.workbook.drawings.index(@ws.drawing))
+ end
+
+ def test_relationships
+ assert(@ws.drawing.relationships.empty?)
+ chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
+ assert_equal(@ws.drawing.relationships.size, 1, "adding a chart adds a relationship")
+ chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"nancy", :start_at=>[1,5], :end_at=>[5,10])
+ assert_equal(@ws.drawing.relationships.size, 2, "adding a chart adds a relationship")
+ end
+
+ def test_to_xml
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
+ doc = Nokogiri::XML(@ws.drawing.to_xml)
+ errors = []
+ schema.validate(doc).each do |error|
+ errors.push error
+ puts error.message
+ end
+ assert(errors.empty?, "error free validation")
+ end
+
+end
diff --git a/test/drawing/tc_graphic_frame.rb b/test/drawing/tc_graphic_frame.rb
new file mode 100644
index 00000000..30017d2b
--- /dev/null
+++ b/test/drawing/tc_graphic_frame.rb
@@ -0,0 +1,26 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestGraphicFrame < Test::Unit::TestCase
+ def setup
+ p = Axlsx::Package.new
+ @ws = p.workbook.add_worksheet
+ @chart = @ws.add_chart Axlsx::Chart
+ @frame = @chart.graphic_frame
+ end
+
+ def teardown
+ end
+
+ def test_initialization
+ assert(@frame.anchor.is_a?(Axlsx::TwoCellAnchor))
+ assert_equal(@frame.chart, @chart)
+ end
+
+ def test_rId
+ assert_equal(@frame.rId, "rId1")
+ chart = @ws.add_chart Axlsx::Chart
+ assert_equal(chart.graphic_frame.rId, "rId2")
+ end
+
+end
diff --git a/test/drawing/tc_marker.rb b/test/drawing/tc_marker.rb
new file mode 100644
index 00000000..8bd9983f
--- /dev/null
+++ b/test/drawing/tc_marker.rb
@@ -0,0 +1,45 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestMarker < Test::Unit::TestCase
+ def setup
+ @marker = Axlsx::Marker.new
+ end
+
+ def teardown
+ end
+
+ def test_initialization
+ assert(@marker.col == 0)
+ assert(@marker.colOff == 0)
+ assert(@marker.row == 0)
+ assert(@marker.rowOff == 0)
+ end
+
+ def test_col
+ assert_raise(ArgumentError) { @marker.col = -1}
+ assert_nothing_raised {@marker.col = 10}
+ end
+
+ def test_colOff
+ assert_raise(ArgumentError) { @marker.colOff = "1"}
+ assert_nothing_raised {@marker.colOff = -10}
+ end
+
+ def test_row
+ assert_raise(ArgumentError) { @marker.row = -1}
+ assert_nothing_raised {@marker.row = 10}
+ end
+
+ def test_rowOff
+ assert_raise(ArgumentError) { @marker.rowOff = "1"}
+ assert_nothing_raised {@marker.rowOff = -10}
+ end
+
+ def test_coord
+ @marker.coord 5, 10
+ assert_equal(@marker.col, 5)
+ assert_equal(@marker.row, 10)
+ end
+
+end
diff --git a/test/drawing/tc_pie_3D_chart.rb b/test/drawing/tc_pie_3D_chart.rb
new file mode 100644
index 00000000..e8a42962
--- /dev/null
+++ b/test/drawing/tc_pie_3D_chart.rb
@@ -0,0 +1,33 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestPie3DChart < Test::Unit::TestCase
+
+ def setup
+ p = Axlsx::Package.new
+ ws = p.workbook.add_worksheet
+ @row = ws.add_row ["one", 1, Time.now]
+ @chart = ws.drawing.add_chart Axlsx::Pie3DChart, :title => "fishery"
+ end
+
+ def teardown
+ end
+
+ def test_initialization
+ assert_equal(@chart.view3D.rotX, 30, "view 3d default rotX incorrect")
+ assert_equal(@chart.view3D.perspective, 30, "view 3d default perspective incorrect")
+ assert_equal(@chart.series_type, Axlsx::PieSeries, "series type incorrect")
+ end
+
+ def test_to_xml
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
+ doc = Nokogiri::XML(@chart.to_xml)
+ errors = []
+ schema.validate(doc).each do |error|
+ errors.push error
+ puts error.message
+ end
+ assert(errors.empty?, "error free validation")
+ end
+
+end
diff --git a/test/drawing/tc_pie_series.rb b/test/drawing/tc_pie_series.rb
new file mode 100644
index 00000000..e7c5e83b
--- /dev/null
+++ b/test/drawing/tc_pie_series.rb
@@ -0,0 +1,35 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestPieSeries < Test::Unit::TestCase
+
+ def setup
+ p = Axlsx::Package.new
+ @ws = p.workbook.add_worksheet :name=>"hmmm"
+ chart = @ws.drawing.add_chart Axlsx::Pie3DChart, :title => "fishery"
+ @series = chart.add_series :data=>[0,1,2], :labels=>["zero", "one", "two"], :title=>"bob"
+ end
+
+ def test_initialize
+ assert_equal(@series.title, "bob", "series title has been applied")
+ assert_equal(@series.data, [0,1,2], "data option applied")
+ assert_equal(@series.labels, ["zero", "one","two"], "labels option applied")
+ assert_equal(@series.explosion, nil, "series shape has been applied")
+ end
+
+ def test_data
+ assert_equal(@series.data, [0,1,2])
+ end
+
+ def test_labels
+ assert_equal(@series.labels, ["zero", "one", "two"])
+
+ end
+
+ def test_explosion
+ assert_raise(ArgumentError, "require valid explosion") { @series.explosion = :lots }
+ assert_nothing_raised("allow valid explosion") { @series.explosion = 20 }
+ assert(@series.explosion == 20)
+ end
+
+end
diff --git a/test/drawing/tc_scaling.rb b/test/drawing/tc_scaling.rb
new file mode 100644
index 00000000..3bf39c53
--- /dev/null
+++ b/test/drawing/tc_scaling.rb
@@ -0,0 +1,37 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestScaling < Test::Unit::TestCase
+ def setup
+ @scaling = Axlsx::Scaling.new
+ end
+
+ def teardown
+ end
+
+ def test_initialization
+ assert(@scaling.orientation == :minMax)
+ end
+
+ def test_logBase
+ assert_raise(ArgumentError) { @scaling.logBase = 1}
+ assert_nothing_raised {@scaling.logBase = 10}
+ end
+
+ def test_orientation
+ assert_raise(ArgumentError) { @scaling.orientation = "1"}
+ assert_nothing_raised {@scaling.orientation = :maxMin}
+ end
+
+
+ def test_max
+ assert_raise(ArgumentError) { @scaling.max = 1}
+ assert_nothing_raised {@scaling.max = 10.5}
+ end
+
+ def test_min
+ assert_raise(ArgumentError) { @scaling.min = 1}
+ assert_nothing_raised {@scaling.min = 10.5}
+ end
+
+end
diff --git a/test/drawing/tc_series.rb b/test/drawing/tc_series.rb
new file mode 100644
index 00000000..b94ec308
--- /dev/null
+++ b/test/drawing/tc_series.rb
@@ -0,0 +1,24 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestSeries < Test::Unit::TestCase
+
+ def setup
+ p = Axlsx::Package.new
+ @ws = p.workbook.add_worksheet :name=>"hmmm"
+ chart = @ws.drawing.add_chart Axlsx::Chart, :title => "fishery"
+ @series = chart.add_series :title=>"bob"
+ end
+
+ def test_initialize
+ assert_equal(@series.title, "bob", "series title has been applied")
+ assert_equal(@series.order, @series.index, "order is index by default")
+ assert_equal(@series.index, @series.chart.series.index(@series), "index is applied")
+ end
+
+ def test_order
+ @series.order = 2
+ assert_equal(@series.order, 2)
+ end
+
+end
diff --git a/test/drawing/tc_title.rb b/test/drawing/tc_title.rb
new file mode 100644
index 00000000..7fb6044b
--- /dev/null
+++ b/test/drawing/tc_title.rb
@@ -0,0 +1,34 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestTitle < Test::Unit::TestCase
+ def setup
+ @p = Axlsx::Package.new
+ ws = @p.workbook.add_worksheet
+ @row = ws.add_row ["one", 1, Time.now]
+ @title = Axlsx::Title.new
+ @chart = ws.add_chart Axlsx::Bar3DChart
+ end
+
+ def teardown
+ end
+
+ def test_initialization
+ assert(@title.text == "")
+ assert(@title.cell == nil)
+ end
+
+ def test_text
+ assert_raise(ArgumentError, "text must be a string") { @title.text = 123 }
+ @title.cell = @row.cells.first
+ @title.text = "bob"
+ assert(@title.cell == nil, "setting title with text clears the cell")
+ end
+
+ def test_cell
+ assert_raise(ArgumentError, "cell must be a Cell") { @title.cell = "123" }
+ @title.cell = @row.cells.first
+ assert(@title.text == "one")
+ end
+
+end
diff --git a/test/drawing/tc_two_cell_anchor.rb b/test/drawing/tc_two_cell_anchor.rb
new file mode 100644
index 00000000..1c6e6882
--- /dev/null
+++ b/test/drawing/tc_two_cell_anchor.rb
@@ -0,0 +1,37 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestTwoCellAnchor < Test::Unit::TestCase
+ def setup
+ @p = Axlsx::Package.new
+ ws = @p.workbook.add_worksheet
+ @row = ws.add_row ["one", 1, Time.now]
+ @title = Axlsx::Title.new
+ @chart = ws.add_chart Axlsx::Bar3DChart
+ @anchor = @chart.graphic_frame.anchor
+ end
+
+ def teardown
+ end
+
+ def test_initialization
+ assert(@anchor.from.col == 0)
+ assert(@anchor.from.row == 0)
+ assert(@anchor.to.col == 5)
+ assert(@anchor.to.row == 10)
+ end
+
+ def test_start_at
+ @anchor.start_at 5, 10
+ assert(@anchor.from.col == 5)
+ assert(@anchor.from.row == 10)
+ end
+
+ def test_end_at
+ @anchor.end_at 10, 15
+ assert(@anchor.to.col == 10)
+ assert(@anchor.to.row == 15)
+ end
+
+
+end
diff --git a/test/drawing/tc_val_axis.rb b/test/drawing/tc_val_axis.rb
new file mode 100644
index 00000000..2dcdd416
--- /dev/null
+++ b/test/drawing/tc_val_axis.rb
@@ -0,0 +1,20 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestValAxis < Test::Unit::TestCase
+ def setup
+ @axis = Axlsx::ValAxis.new 12345, 54321
+ end
+ def teardown
+ end
+
+ def test_initialization
+ assert_equal(@axis.crossBetween, :between, "axis crossBetween default incorrect")
+ end
+
+ def test_crossBetween
+ assert_raise(ArgumentError, "requires valid crossBetween") { @axis.crossBetween = :my_eyes }
+ assert_nothing_raised("accepts valid crossBetween") { @axis.crossBetween = :midCat }
+ end
+
+end
diff --git a/test/drawing/tc_view_3D.rb b/test/drawing/tc_view_3D.rb
new file mode 100644
index 00000000..909550b5
--- /dev/null
+++ b/test/drawing/tc_view_3D.rb
@@ -0,0 +1,46 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestView3D < Test::Unit::TestCase
+ def setup
+ @view = Axlsx::View3D.new
+ end
+
+ def teardown
+ end
+
+
+ def test_rotX
+ assert_raise(ArgumentError) {@view.rotX = "bob"}
+ assert_nothing_raised {@view.rotX = -90}
+ end
+
+ def test_rotY
+ assert_raise(ArgumentError) {@view.rotY = "bob"}
+ assert_nothing_raised {@view.rotY = 90}
+ end
+
+ def test_hPercent
+ assert_raise(ArgumentError) {@view.hPercent = "bob"}
+ assert_nothing_raised {@view.hPercent = "500%"}
+ end
+
+ def test_depthPercent
+ assert_raise(ArgumentError) {@view.depthPercent = "bob"}
+ assert_nothing_raised {@view.depthPercent = "20%"}
+ end
+
+
+ def test_rAngAx
+ assert_raise(ArgumentError) {@view.rAngAx = "bob"}
+ assert_nothing_raised {@view.rAngAx = true}
+ end
+
+ def test_perspective
+ assert_raise(ArgumentError) {@view.perspective = "bob"}
+ assert_nothing_raised {@view.perspective = 30}
+ end
+
+
+
+end