| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- package xlsx
- import (
- . "gopkg.in/check.v1"
- )
- type ColSuite struct{}
- var _ = Suite(&ColSuite{})
- func (cs *ColSuite) TestCopyToRange(c *C) {
- nf := &parsedNumberFormat{}
- s := &Style{}
- cdv1 := &xlsxCellDataValidation{}
- cdv2 := &xlsxCellDataValidation{}
- ct := CellTypeBool.Ptr()
- c1 := &Col{
- Min: 0,
- Max: 10,
- Hidden: true,
- Width: 300.4,
- Collapsed: true,
- OutlineLevel: 2,
- numFmt: "-0.00",
- parsedNumFmt: nf,
- style: s,
- DataValidation: []*xlsxCellDataValidation{cdv1, cdv2},
- defaultCellType: ct,
- }
- c2 := c1.copyToRange(4, 10)
- c.Assert(c2.Min, Equals, 4)
- c.Assert(c2.Max, Equals, 10)
- c.Assert(c2.Hidden, Equals, c1.Hidden)
- c.Assert(c2.Width, Equals, c1.Width)
- c.Assert(c2.Collapsed, Equals, c1.Collapsed)
- c.Assert(c2.OutlineLevel, Equals, c1.OutlineLevel)
- c.Assert(c2.numFmt, Equals, c1.numFmt)
- c.Assert(c2.parsedNumFmt, Equals, c1.parsedNumFmt)
- c.Assert(c2.style, Equals, c1.style)
- c.Assert(c2.DataValidation, HasLen, 2)
- c.Assert(c2.DataValidation[0], Equals, c1.DataValidation[0])
- c.Assert(c2.DataValidation[1], Equals, c1.DataValidation[1])
- c.Assert(c2.defaultCellType, Equals, c1.defaultCellType)
- }
- type ColStoreSuite struct{}
- var _ = Suite(&ColStoreSuite{})
- func (css *ColStoreSuite) TestAddRootNode(c *C) {
- col := &Col{Min: 0, Max: 1}
- cs := ColStore{}
- cs.Add(col)
- c.Assert(cs.Root.Col, Equals, col)
- }
- func (css *ColStoreSuite) TestMakeWay(c *C) {
- assertWayMade := func(cols []*Col, chainFunc func(root *colStoreNode)) {
- cs := ColStore{}
- for _, col := range cols {
- cs.Add(col)
- }
- chainFunc(cs.Root)
- }
- // Col1: |--|
- // Col2: |--|
- assertWayMade([]*Col{&Col{Min: 0, Max: 1}, &Col{Min: 2, Max: 3}},
- func(root *colStoreNode) {
- c.Assert(root.Col.Min, Equals, 0)
- c.Assert(root.Col.Max, Equals, 1)
- c.Assert(root.Prev, IsNil)
- c.Assert(root.Next, NotNil)
- node2 := root.Next
- c.Assert(node2.Prev, Equals, root)
- c.Assert(node2.Next, IsNil)
- c.Assert(node2.Col.Min, Equals, 2)
- c.Assert(node2.Col.Max, Equals, 3)
- })
- // Col1: |--|
- // Col2: |--|
- assertWayMade([]*Col{&Col{Min: 2, Max: 3}, &Col{Min: 0, Max: 1}},
- func(root *colStoreNode) {
- c.Assert(root.Col.Min, Equals, 2)
- c.Assert(root.Col.Max, Equals, 3)
- c.Assert(root.Prev, NotNil)
- c.Assert(root.Next, IsNil)
- node2 := root.Prev
- c.Assert(node2.Next, Equals, root)
- c.Assert(node2.Prev, IsNil)
- c.Assert(node2.Col.Min, Equals, 0)
- c.Assert(node2.Col.Max, Equals, 1)
- })
- // Col1: |--x|
- // Col2: |--|
- assertWayMade([]*Col{&Col{Min: 0, Max: 2}, &Col{Min: 2, Max: 3}},
- func(root *colStoreNode) {
- c.Assert(root.Col.Min, Equals, 0)
- c.Assert(root.Col.Max, Equals, 1)
- c.Assert(root.Prev, IsNil)
- c.Assert(root.Next, NotNil)
- node2 := root.Next
- c.Assert(node2.Prev, Equals, root)
- c.Assert(node2.Next, IsNil)
- c.Assert(node2.Col.Min, Equals, 2)
- c.Assert(node2.Col.Max, Equals, 3)
- })
- // Col1: |x-|
- // Col2: |--|
- assertWayMade([]*Col{&Col{Min: 1, Max: 2}, &Col{Min: 0, Max: 1}},
- func(root *colStoreNode) {
- c.Assert(root.Col.Min, Equals, 2)
- c.Assert(root.Col.Max, Equals, 2)
- c.Assert(root.Prev, NotNil)
- c.Assert(root.Next, IsNil)
- node2 := root.Prev
- c.Assert(node2.Next, Equals, root)
- c.Assert(node2.Prev, IsNil)
- c.Assert(node2.Col.Min, Equals, 0)
- c.Assert(node2.Col.Max, Equals, 1)
- })
- // Col1: |---xx---|
- // Col2: |--|
- assertWayMade([]*Col{&Col{Min: 0, Max: 7}, &Col{Min: 3, Max: 4}},
- func(root *colStoreNode) {
- c.Assert(root.Prev, IsNil)
- c.Assert(root.Next, NotNil)
- node2 := root.Next
- c.Assert(node2.Prev, Equals, root)
- c.Assert(node2.Col.Min, Equals, 3)
- c.Assert(node2.Col.Max, Equals, 4)
- c.Assert(node2.Next, NotNil)
- node3 := node2.Next
- c.Assert(node3.Prev, Equals, node2)
- c.Assert(node3.Next, IsNil)
- c.Assert(node3.Col.Min, Equals, 5)
- c.Assert(node3.Col.Max, Equals, 7)
- })
- // Col1: |xx|
- // Col2: |--|
- assertWayMade([]*Col{&Col{Min: 0, Max: 1, Width: 40.1}, &Col{Min: 0, Max: 1, Width: 10.0}},
- func(root *colStoreNode) {
- c.Assert(root.Prev, IsNil)
- c.Assert(root.Next, IsNil)
- c.Assert(root.Col.Min, Equals, 0)
- c.Assert(root.Col.Max, Equals, 1)
- // This is how we establish we have the new node, and not the old one
- c.Assert(root.Col.Width, Equals, 10.0)
- })
- // Col1: |--|
- // Col2: |--|
- // Col3: |
- // assertWayMade([]*Col{&Col{Min: 0, Max: 7}, &Col{Min: 3, Max: 4}},
- // func(root *colStoreNode) {
- // c.Assert(root.Prev, IsNil)
- // c.Assert(root.Next, NotNil)
- // node2 := root.Next
- // c.Assert(node2.Prev, Equals, root)
- // c.Assert(node2.Col.Min, Equals, 3)
- // c.Assert(node2.Col.Max, Equals, 4)
- // c.Assert(node2.Next, NotNil)
- // node3 := node2.Next
- // c.Assert(node3.Prev, Equals, node2)
- // c.Assert(node3.Next, IsNil)
- // c.Assert(node3.Col.Min, Equals, 5)
- // c.Assert(node3.Col.Max, Equals, 7)
- // })
- }
|