domain-spec.ts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. import { initChart } from './c3-helper'
  2. describe('c3 chart domain', function() {
  3. 'use strict'
  4. var chart
  5. var args = {
  6. data: {
  7. columns: [
  8. ['data1', 30, 200, 100, 400, 150, 250],
  9. ['data2', 50, 20, 10, 40, 15, 25]
  10. ]
  11. },
  12. axis: {
  13. y: {},
  14. y2: {}
  15. }
  16. }
  17. beforeEach(function(done) {
  18. chart = initChart(chart, args, done)
  19. })
  20. describe('axis.y.min', function() {
  21. describe('should change axis.y.min to -100', function() {
  22. beforeAll(function() {
  23. ;(args.axis.y as any).min = -100
  24. })
  25. it('should be set properly when smaller than max of data', function() {
  26. var domain = chart.internal.y.domain()
  27. expect(domain[0]).toBe(-150)
  28. expect(domain[1]).toBe(450)
  29. })
  30. })
  31. describe('should change axis.y.min to 500', function() {
  32. beforeAll(function() {
  33. ;(args.axis.y as any).min = 500
  34. })
  35. it('should be set properly when bigger than max of data', function() {
  36. var domain = chart.internal.y.domain()
  37. expect(domain[0]).toBe(499)
  38. expect(domain[1]).toBe(511)
  39. })
  40. })
  41. afterAll(function() {
  42. ;(args.axis.y as any).min = undefined
  43. })
  44. })
  45. describe('axis.y.max', function() {
  46. describe('should change axis.y.max to 1000', function() {
  47. beforeAll(function() {
  48. ;(args.axis.y as any).max = 1000
  49. })
  50. it('should be set properly when bigger than min of data', function() {
  51. var domain = chart.internal.y.domain()
  52. expect(domain[0]).toBe(-89)
  53. expect(domain[1]).toBe(1099)
  54. })
  55. })
  56. describe('should change axis.y.max to 0', function() {
  57. beforeAll(function() {
  58. ;(args.axis.y as any).max = 0
  59. })
  60. it('should be set properly when smaller than min of data', function() {
  61. var domain = chart.internal.y.domain()
  62. expect(domain[0]).toBe(-11)
  63. expect(domain[1]).toBe(1)
  64. })
  65. })
  66. })
  67. describe('axis.y.padding', function() {
  68. describe('should change axis.y.max to 1000', function() {
  69. beforeAll(function() {
  70. args = {
  71. data: {
  72. columns: [
  73. ['data1', 10, 20, 10, 40, 15, 25],
  74. ['data2', 50, 40, 30, 45, 25, 45]
  75. ]
  76. },
  77. axis: {
  78. y: {
  79. padding: 200
  80. },
  81. y2: {}
  82. }
  83. }
  84. })
  85. it('should be set properly when bigger than min of data', function() {
  86. var domain = chart.internal.y.domain()
  87. expect(domain[0]).toBeCloseTo(-9, -1)
  88. expect(domain[1]).toBeCloseTo(69, -1)
  89. })
  90. })
  91. describe('should change axis.y.max to 1000 with top/bottom padding', function() {
  92. beforeAll(function() {
  93. args = {
  94. data: {
  95. columns: [
  96. ['data1', 10, 20, 10, 40, 15, 25],
  97. ['data2', 50, 40, 30, 45, 25, 45]
  98. ]
  99. },
  100. axis: {
  101. y: {
  102. padding: {
  103. top: 200,
  104. bottom: 200
  105. }
  106. },
  107. y2: {}
  108. }
  109. }
  110. })
  111. it('should be set properly when bigger than min of data', function() {
  112. var domain = chart.internal.y.domain()
  113. expect(domain[0]).toBeCloseTo(-9, -1)
  114. expect(domain[1]).toBeCloseTo(69, -1)
  115. })
  116. })
  117. })
  118. })