unittest2doc.formatter.pformat_json¶
references: unittest2doc.formatter.pformat_json()
Test cases for json_formatter module’s pformat_json function
setUp¶
here we also test the FLog class, it is a helper class to print function inputs and outputs
INPUT
def setUp(self):
""" here we also test the FLog class, it is a helper class to print function inputs and outputs """
self.flog = FLog(do_print=True, output_suffix='\n', input_suffix=' # ===>')
self.frun = self.flog.frun
basic_format¶
INPUT
def test_basic_format(self):
""" {"output_highlight": "python"}
"""
# Test basic dictionary formatting
data = {"name": "John", "age": 30, "city": "New York"}
# call pformat_json(data) and print the result
self.frun(pformat_json, data)
# Test basic list formatting
data = [1, 2, 3, "four", 5.0]
# call pformat_json(data) and print the result
self.frun(pformat_json, data)
# Test simple value
data = "simple string"
# call pformat_json(data) and print the result
self.frun(pformat_json, data)
OUTPUT
pformat_json({'name': 'John', 'age': 30, 'city': 'New York'}, ) # ===>
{
'name': 'John',
'age': 30,
'city': 'New York',
}
pformat_json([1, 2, 3, 'four', 5.0], ) # ===>
[
1,
2,
3,
'four',
5.0,
]
pformat_json('simple string', ) # ===>
'simple string'
nested_structures¶
INPUT
def test_nested_structures(self):
""" {"output_highlight": "python"}
"""
# Test nested dictionary and list
data = {
"person": {
"name": "Alice",
"details": {
"age": 28,
"occupation": "Engineer"
}
},
"hobbies": ["reading", "hiking", {"sport": "tennis"}]
}
self.frun(pformat_json, data)
OUTPUT
pformat_json(
{'person': {'name': 'Alice', 'details': {'age': 28, 'occupation': 'Engineer'}}, 'hobbies': ['reading', 'hiking', {'sport': 'tennis'}]}
) # ===>
{
'person': {
'name': 'Alice',
'details': {
'age': 28,
'occupation': 'Engineer',
},
},
'hobbies': [
'reading',
'hiking',
{
'sport': 'tennis',
},
],
}
dict_title_comment¶
INPUT
def test_dict_title_comment(self):
""" {"output_highlight": "python"}
"""
# Test using string comment for dict title
data = {"key1": "value1", "key2": "value2"}
self.frun(pformat_json, data, comments="Dictionary Title")
# Test using __dtitle__ special key
data = {"key1": "value1", "key2": "value2"}
comments = {"__dtitle__": "Dictionary Title With Special Key"}
self.frun(pformat_json, data, comments=comments)
# Test multi-line dict title
comments = {"__dtitle__": "First Line\nSecond Line\nThird Line"}
self.frun(pformat_json, data, comments=comments)
OUTPUT
pformat_json(
{
"key1": "value1",
"key2": "value2"
},
comments='Dictionary Title'
) # ===>
{ # Dictionary Title
'key1': 'value1',
'key2': 'value2',
}
pformat_json(
{
"key1": "value1",
"key2": "value2"
},
comments={'__dtitle__': 'Dictionary Title With Special Key'}
) # ===>
{ # Dictionary Title With Special Key
'key1': 'value1',
'key2': 'value2',
}
pformat_json(
{
"key1": "value1",
"key2": "value2"
},
comments={'__dtitle__': 'First Line\nSecond Line\nThird Line'}
) # ===>
{ # First Line
# Second Line
# Third Line
'key1': 'value1',
'key2': 'value2',
}
list_title_comment¶
INPUT
def test_list_title_comment(self):
""" {"output_highlight": "python"}
"""
# Test using string comment for list title
data = ["item1", "item2", "item3"]
self.frun(pformat_json, data, comments="List Title")
# Test using __ltitle__ special key
comments = {"__ltitle__": "List Title With Special Key"}
self.frun(pformat_json, data, comments=comments)
# Test list prefix and suffix comments
comments = {
"__ltitle__": "List With Prefix and Suffix",
"__lprefix__": ["Prefix Line 1", "Prefix Line 2"],
"__lsuffix__": ["Suffix Line 1", "Suffix Line 2"]
}
self.frun(pformat_json, data, comments=comments)
OUTPUT
pformat_json(['item1', 'item2', 'item3'], comments='List Title') # ===>
[ # List Title
'item1',
'item2',
'item3',
]
pformat_json(
[
"item1",
"item2",
"item3"
],
comments={'__ltitle__': 'List Title With Special Key'}
) # ===>
[ # List Title With Special Key
'item1',
'item2',
'item3',
]
pformat_json(
[
"item1",
"item2",
"item3"
],
comments={
"__ltitle__": "List With Prefix and Suffix",
"__lprefix__": [
"Prefix Line 1",
"Prefix Line 2"
],
"__lsuffix__": [
"Suffix Line 1",
"Suffix Line 2"
]
}
) # ===>
[ # List With Prefix and Suffix
# Prefix Line 1
# Prefix Line 2
'item1',
'item2',
'item3',
# Suffix Line 1
# Suffix Line 2
]
specific_element_comments¶
INPUT
def test_specific_element_comments(self):
""" {"output_highlight": "python"}
"""
# Test comments for specific dict keys
data = {"name": "Bob", "age": 45, "city": "Boston"}
comments = {
"name": "Person's name",
"age": "Person's age in years",
"city": "City of residence"
}
self.frun(pformat_json, data, comments=comments)
# Test comments for specific list indices
data = ["Python", "Java", "JavaScript", "C++"]
comments = {
0: "My favorite language",
2: "Web development language"
}
self.frun(pformat_json, data, comments=comments)
OUTPUT
pformat_json(
{
"name": "Bob",
"age": 45,
"city": "Boston"
},
comments={
"name": "Person's name",
"age": "Person's age in years",
"city": "City of residence"
}
) # ===>
{
'name': 'Bob', # Person's name
'age': 45, # Person's age in years
'city': 'Boston', # City of residence
}
pformat_json(
[
"Python",
"Java",
"JavaScript",
"C++"
],
comments={0: 'My favorite language', 2: 'Web development language'}
) # ===>
[
'Python', # My favorite language
'Java',
'JavaScript', # Web development language
'C++',
]
callable_comments¶
INPUT
def test_callable_comments(self):
""" {"output_highlight": "python"}
"""
# Test callable comments for dict
data = {"price": 129.99, "quantity": 5, "discount": 0.15}
def calc_total(key, value):
if key == "price":
return f"Base price: ${value}"
elif key == "quantity":
return f"Order quantity of {value} units"
elif key == "discount":
return f"Discount rate of {int(value*100)}%"
return ""
comments = {
"price": calc_total,
"quantity": calc_total,
"discount": calc_total
}
self.frun(pformat_json, data, comments=comments)
OUTPUT
pformat_json(
{
"price": 129.99,
"quantity": 5,
"discount": 0.15
},
comments={
"price": "<function TestJsonFormatter.test_callable_comments.<locals>.calc_total at 0x7f406278aca0>",
"quantity": "<function TestJsonFormatter.test_callable_comments.<locals>.calc_total at 0x7f406278aca0>",
"discount": "<function TestJsonFormatter.test_callable_comments.<locals>.calc_total at 0x7f406278aca0>"
}
) # ===>
{
'price': 129.99, # Base price: $129.99
'quantity': 5, # Order quantity of 5 units
'discount': 0.15, # Discount rate of 15%
}
compact_mode¶
INPUT
def test_compact_mode(self):
""" {"output_highlight": "python"}
"""
# Test compact mode for dict
data = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5, "f": 6}
comments = {
"__lcompact__": 30,
"a": "First item",
"c": "Third item",
"e": "Fifth item"
}
self.frun(pformat_json, data, comments=comments)
comments['__lcompact__'] = 25
self.frun(pformat_json, data, comments=comments)
comments['__lcompact__'] = 20
self.frun(pformat_json, data, comments=comments)
comments['__lcompact__'] = 15
self.frun(pformat_json, data, comments=comments)
comments.pop('__lcompact__')
self.frun(pformat_json, data, comments=comments)
self.frun(pformat_json, data, comments=comments, compact=15)
self.frun(pformat_json, data, comments=comments, compact=20)
self.frun(pformat_json, data, comments=comments, compact=30)
OUTPUT
pformat_json(
{
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"e": 5,
"f": 6
},
comments={
"__lcompact__": 30,
"a": "First item",
"c": "Third item",
"e": "Fifth item"
}
) # ===>
{
'a': 1, 'b': 2, 'c': 3, # 'a':First item # 'c':Third item
'd': 4, 'e': 5, 'f': 6, # 'e':Fifth item
}
pformat_json(
{
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"e": 5,
"f": 6
},
comments={
"__lcompact__": 25,
"a": "First item",
"c": "Third item",
"e": "Fifth item"
}
) # ===>
{
'a': 1, 'b': 2, 'c': 3, # 'a':First item # 'c':Third item
'd': 4, 'e': 5, 'f': 6, # 'e':Fifth item
}
pformat_json(
{
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"e": 5,
"f": 6
},
comments={
"__lcompact__": 20,
"a": "First item",
"c": "Third item",
"e": "Fifth item"
}
) # ===>
{
'a': 1, 'b': 2, # 'a':First item
'c': 3, 'd': 4, # 'c':Third item
'e': 5, 'f': 6, # 'e':Fifth item
}
pformat_json(
{
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"e": 5,
"f": 6
},
comments={
"__lcompact__": 15,
"a": "First item",
"c": "Third item",
"e": "Fifth item"
}
) # ===>
{
'a': 1, # 'a':First item
'b': 2,
'c': 3, # 'c':Third item
'd': 4,
'e': 5, # 'e':Fifth item
'f': 6,
}
pformat_json(
{
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"e": 5,
"f": 6
},
comments={'a': 'First item', 'c': 'Third item', 'e': 'Fifth item'}
) # ===>
{
'a': 1, # First item
'b': 2,
'c': 3, # Third item
'd': 4,
'e': 5, # Fifth item
'f': 6,
}
pformat_json(
{
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"e": 5,
"f": 6
},
comments={'a': 'First item', 'c': 'Third item', 'e': 'Fifth item'},
compact=15
) # ===>
{
'a': 1, # 'a':First item
'b': 2,
'c': 3, # 'c':Third item
'd': 4,
'e': 5, # 'e':Fifth item
'f': 6,
}
pformat_json(
{
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"e": 5,
"f": 6
},
comments={'a': 'First item', 'c': 'Third item', 'e': 'Fifth item'},
compact=20
) # ===>
{
'a': 1, 'b': 2, # 'a':First item
'c': 3, 'd': 4, # 'c':Third item
'e': 5, 'f': 6, # 'e':Fifth item
}
pformat_json(
{
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"e": 5,
"f": 6
},
comments={'a': 'First item', 'c': 'Third item', 'e': 'Fifth item'},
compact=30
) # ===>
{
'a': 1, 'b': 2, 'c': 3, # 'a':First item # 'c':Third item
'd': 4, 'e': 5, 'f': 6, # 'e':Fifth item
}
recursive_comments¶
INPUT
def test_recursive_comments(self):
""" {"output_highlight": "python"}
"""
# Test __lsub__ for all dict elements
data = {
"user": {
"id": 12345,
"name": "Alice Smith",
"email": "alice@example.com"
},
"settings": {
"theme": "dark",
"notifications": True
}
}
comments = {
"__dtitle__": "User Profile",
"__lsub__": {
"id": "Unique identifier",
"name": "Full name",
"theme": "UI theme preference"
}
}
self.frun(pformat_json, data, comments=comments)
# Test __llist__ and __ldict__ for typed elements
data = [
{"type": "book", "title": "Python Programming"},
[1, 2, 3],
{"type": "video", "title": "Advanced Python"}
]
comments = {
"__llist__": {
"__lcompact__": 40
},
"__ldict__": {
"type": "Content type",
"title": "Content title"
}
}
self.frun(pformat_json, data, comments=comments)
OUTPUT
pformat_json(
{'user': {'id': 12345, 'name': 'Alice Smith', 'email': 'alice@example.com'}, 'settings': {'theme': 'dark', 'notifications': True}},
comments={
"__dtitle__": "User Profile",
"__lsub__": {
"id": "Unique identifier",
"name": "Full name",
"theme": "UI theme preference"
}
}
) # ===>
{ # User Profile
'user': {
'id': 12345, # Unique identifier
'name': 'Alice Smith', # Full name
'email': 'alice@example.com',
},
'settings': {
'theme': 'dark', # UI theme preference
'notifications': True,
},
}
pformat_json(
[{'type': 'book', 'title': 'Python Programming'}, [1, 2, 3], {'type': 'video', 'title': 'Advanced Python'}],
comments={
"__llist__": {
"__lcompact__": 40
},
"__ldict__": {
"type": "Content type",
"title": "Content title"
}
}
) # ===>
[
{
'type': 'book', # Content type
'title': 'Python Programming', # Content title
},
[
1, 2, 3,
],
{
'type': 'video', # Content type
'title': 'Advanced Python', # Content title
},
]
custom_indentation¶
INPUT
def test_custom_indentation(self):
""" {"output_highlight": "python"}
"""
# Test custom indentation
data = {
"outer": {
"middle": {
"inner": "value"
}
}
}
# Test with different indent values
self.frun(pformat_json, data, indent=2)
self.frun(pformat_json, data, indent=4)
OUTPUT
pformat_json({'outer': {'middle': {'inner': 'value'}}}, indent=2) # ===>
{
'outer': {
'middle': {
'inner': 'value',
},
},
}
pformat_json({'outer': {'middle': {'inner': 'value'}}}, indent=4) # ===>
{
'outer': {
'middle': {
'inner': 'value',
},
},
}
custom_comment_prefix¶
INPUT
def test_custom_comment_prefix(self):
""" {"output_highlight": "python"}
"""
# Test custom comment prefix
data = {"name": "John", "age": 30}
comments = {
"__dtitle__": "Person Info",
"name": "Person's name",
"age": "Age in years"
}
self.frun(pformat_json, data, comments=comments, comment_prefix="// ")
OUTPUT
pformat_json(
{
"name": "John",
"age": 30
},
comments={
"__dtitle__": "Person Info",
"name": "Person's name",
"age": "Age in years"
},
comment_prefix='// '
) # ===>
{ // Person Info
'name': 'John', // Person's name
'age': 30, // Age in years
}
different_compact_values¶
INPUT
def test_different_compact_values(self):
""" {"output_highlight": "python"}
"""
# Same data with different __lcompact__ values
data = {"item1": 100, "item2": 200, "item3": 300, "item4": 400, "item5": 500}
comments = {
"item1": "First item comment",
"item3": "Third item comment",
"item5": "Fifth item comment"
}
# No compact mode
print("\nNo compact mode:")
self.frun(pformat_json, data, comments=comments)
# Very wide compact mode (essentially same as no compact)
print("\nCompact mode (width=100):")
comments_wide = comments.copy()
comments_wide["__lcompact__"] = 100
self.frun(pformat_json, data, comments=comments_wide)
# Medium compact mode
print("\nCompact mode (width=50):")
comments_medium = comments.copy()
comments_medium["__lcompact__"] = 50
self.frun(pformat_json, data, comments=comments_medium)
# Narrow compact mode
print("\nCompact mode (width=25):")
comments_narrow = comments.copy()
comments_narrow["__lcompact__"] = 25
self.frun(pformat_json, data, comments=comments_narrow)
OUTPUT
No compact mode:
pformat_json(
{
"item1": 100,
"item2": 200,
"item3": 300,
"item4": 400,
"item5": 500
},
comments={
"item1": "First item comment",
"item3": "Third item comment",
"item5": "Fifth item comment"
}
) # ===>
{
'item1': 100, # First item comment
'item2': 200,
'item3': 300, # Third item comment
'item4': 400,
'item5': 500, # Fifth item comment
}
Compact mode (width=100):
pformat_json(
{
"item1": 100,
"item2": 200,
"item3": 300,
"item4": 400,
"item5": 500
},
comments={
"item1": "First item comment",
"item3": "Third item comment",
"item5": "Fifth item comment",
"__lcompact__": 100
}
) # ===>
{
'item1': 100, 'item2': 200, 'item3': 300, 'item4': 400, 'item5': 500, # 'item1':First item comment # 'item3':Third item comment # 'item5':Fifth item comment
}
Compact mode (width=50):
pformat_json(
{
"item1": 100,
"item2": 200,
"item3": 300,
"item4": 400,
"item5": 500
},
comments={
"item1": "First item comment",
"item3": "Third item comment",
"item5": "Fifth item comment",
"__lcompact__": 50
}
) # ===>
{
'item1': 100, 'item2': 200, 'item3': 300, # 'item1':First item comment # 'item3':Third item comment
'item4': 400, 'item5': 500, # 'item5':Fifth item comment
}
Compact mode (width=25):
pformat_json(
{
"item1": 100,
"item2": 200,
"item3": 300,
"item4": 400,
"item5": 500
},
comments={
"item1": "First item comment",
"item3": "Third item comment",
"item5": "Fifth item comment",
"__lcompact__": 25
}
) # ===>
{
'item1': 100, # 'item1':First item comment
'item2': 200,
'item3': 300, # 'item3':Third item comment
'item4': 400,
'item5': 500, # 'item5':Fifth item comment
}
deeply_nested_structure¶
INPUT
def test_deeply_nested_structure(self):
""" {"output_highlight": "python"}
"""
# Create a deeply nested structure to test indentation handling
data = {
"level1": {
"level2": {
"level3": {
"level4": {
"level5": {
"value": "deeply nested value"
},
"array": [1, 2, [3, 4, [5, 6]]]
}
}
}
}
}
comments = {
"__dtitle__": "Deep Nesting Test",
"__lsub__": {
"level1": "First level",
"level2": "Second level",
"level3": "Third level",
"level4": "Fourth level",
"level5": "Fifth level",
"value": "The final value",
"array": "Array of values"
}
}
self.frun(pformat_json, data, comments=comments, debug=True)
OUTPUT
level: 0, key: level1, value: {'level2': {'level3': {'level4': {'level5': {'value': 'deeply nested value'}, 'array': [1, 2, [3, 4, [5, 6]]]}}}}, subcomments: {'level1': 'First level', 'level2': 'Second level', 'level3': 'Third level', 'level4': 'Fourth level', 'level5': 'Fifth level', 'value': 'The final value', 'array': 'Array of values', '__lsub__': {'level1': 'First level', 'level2': 'Second level', 'level3': 'Third level', 'level4': 'Fourth level', 'level5': 'Fifth level', 'value': 'The final value', 'array': 'Array of values'}}
level: 1, key: level2, value: {'level3': {'level4': {'level5': {'value': 'deeply nested value'}, 'array': [1, 2, [3, 4, [5, 6]]]}}}, subcomments: {'level1': 'First level', 'level2': 'Second level', 'level3': 'Third level', 'level4': 'Fourth level', 'level5': 'Fifth level', 'value': 'The final value', 'array': 'Array of values', '__dtitle__': 'Second level', '__lsub__': {'level1': 'First level', 'level2': 'Second level', 'level3': 'Third level', 'level4': 'Fourth level', 'level5': 'Fifth level', 'value': 'The final value', 'array': 'Array of values'}}
level: 2, key: level3, value: {'level4': {'level5': {'value': 'deeply nested value'}, 'array': [1, 2, [3, 4, [5, 6]]]}}, subcomments: {'level1': 'First level', 'level2': 'Second level', 'level3': 'Third level', 'level4': 'Fourth level', 'level5': 'Fifth level', 'value': 'The final value', 'array': 'Array of values', '__dtitle__': 'Third level', '__lsub__': {'level1': 'First level', 'level2': 'Second level', 'level3': 'Third level', 'level4': 'Fourth level', 'level5': 'Fifth level', 'value': 'The final value', 'array': 'Array of values'}}
level: 3, key: level4, value: {'level5': {'value': 'deeply nested value'}, 'array': [1, 2, [3, 4, [5, 6]]]}, subcomments: {'level1': 'First level', 'level2': 'Second level', 'level3': 'Third level', 'level4': 'Fourth level', 'level5': 'Fifth level', 'value': 'The final value', 'array': 'Array of values', '__dtitle__': 'Fourth level', '__lsub__': {'level1': 'First level', 'level2': 'Second level', 'level3': 'Third level', 'level4': 'Fourth level', 'level5': 'Fifth level', 'value': 'The final value', 'array': 'Array of values'}}
level: 4, key: level5, value: {'value': 'deeply nested value'}, subcomments: {'level1': 'First level', 'level2': 'Second level', 'level3': 'Third level', 'level4': 'Fourth level', 'level5': 'Fifth level', 'value': 'The final value', 'array': 'Array of values', '__dtitle__': 'Fifth level', '__lsub__': {'level1': 'First level', 'level2': 'Second level', 'level3': 'Third level', 'level4': 'Fourth level', 'level5': 'Fifth level', 'value': 'The final value', 'array': 'Array of values'}}
level: 5, key: value, value: deeply nested value, subcomments: The final value
level: 4, key: array, value: [1, 2, [3, 4, [5, 6]]], subcomments: {'level1': 'First level', 'level2': 'Second level', 'level3': 'Third level', 'level4': 'Fourth level', 'level5': 'Fifth level', 'value': 'The final value', 'array': 'Array of values', '__ltitle__': 'Array of values', '__lsub__': {'level1': 'First level', 'level2': 'Second level', 'level3': 'Third level', 'level4': 'Fourth level', 'level5': 'Fifth level', 'value': 'The final value', 'array': 'Array of values'}}
pformat_json(
{'level1': {'level2': {'level3': {'level4': {'level5': {'value': 'deeply nested value'}, 'array': [1, 2, [3, 4, [5, 6]]]}}}}},
comments={
"__dtitle__": "Deep Nesting Test",
"__lsub__": {
"level1": "First level",
"level2": "Second level",
"level3": "Third level",
"level4": "Fourth level",
"level5": "Fifth level",
"value": "The final value",
"array": "Array of values"
}
},
debug=True
) # ===>
{ # Deep Nesting Test
'level1': {
'level2': { # Second level
'level3': { # Third level
'level4': { # Fourth level
'level5': { # Fifth level
'value': 'deeply nested value', # The final value
},
'array': [ # Array of values
1,
2,
[
3,
4,
[
5,
6,
],
],
],
},
},
},
},
}
comprehensive_example¶
INPUT
def test_comprehensive_example(self):
""" {"output_highlight": "python"}
"""
# Test case combining multiple features
data = {
"metadata": {
"title": "Comprehensive Example",
"version": 1.5,
"tags": ["test", "example", "comprehensive"]
},
"configuration": {
"enabled": True,
"options": {
"debug": False,
"verbose": True,
"timeout": 30
}
},
"data_points": [
{"id": 1, "value": 10.5, "label": "Point A"},
{"id": 2, "value": 20.7, "label": "Point B"},
{"id": 3, "value": 15.3, "label": "Point C"}
],
"statistics": {
"count": 3,
"average": 15.5,
"max": 20.7,
"min": 10.5
}
}
# Define comprehensive comments
def format_stat(key, value):
if key == "average":
return f"Average value: {value:.1f}"
elif key == "max":
return f"Maximum value: {value:.1f}"
elif key == "min":
return f"Minimum value: {value:.1f}"
return str(value)
comments = {
"__dtitle__": "Complete Feature Demonstration",
"__lcompact__": 60,
"metadata": {
"__dtitle__": "Document Metadata",
"title": "The title of this example",
"tags": "Keywords for categorization"
},
"configuration": {
"__dtitle__": "System Configuration",
"__lcompact__": 40,
"options": {
"__dtitle__": "Available Options",
"debug": "Enable debug mode",
"verbose": "Show detailed output",
"timeout": "Operation timeout in seconds"
}
},
"data_points": {
"__ltitle__": "Measurement Data",
"__lprefix__": ["Array of data point objects", "Each with id, value and label"],
"__ldict__": {
"id": "Unique identifier",
"value": "Measurement value",
"label": "Display name"
}
},
"statistics": {
"__dtitle__": "Statistical Analysis",
"count": "Number of data points",
"average": format_stat,
"max": format_stat,
"min": format_stat
}
}
result = pformat_json(data, comments=comments)
print(result)
OUTPUT
{ # Complete Feature Demonstration
'metadata': { # Document Metadata
'title': 'Comprehensive Example', # The title of this example
'version': 1.5,
'tags': [ # Keywords for categorization
'test',
'example',
'comprehensive',
],
},
'configuration': { # System Configuration
'enabled': True,
'options': { # Available Options
'debug': False, # Enable debug mode
'verbose': True, # Show detailed output
'timeout': 30, # Operation timeout in seconds
},
},
'data_points': [ # Measurement Data
# Array of data point objects
# Each with id, value and label
{
'id': 1, # Unique identifier
'value': 10.5, # Measurement value
'label': 'Point A', # Display name
},
{
'id': 2, # Unique identifier
'value': 20.7, # Measurement value
'label': 'Point B', # Display name
},
{
'id': 3, # Unique identifier
'value': 15.3, # Measurement value
'label': 'Point C', # Display name
},
],
'statistics': { # Statistical Analysis
'count': 3, # Number of data points
'average': 15.5, # Average value: 15.5
'max': 20.7, # Maximum value: 20.7
'min': 10.5, # Minimum value: 10.5
},
}