From 71d0c43a9b7026a6af02d26bf3a7bf3b79f4b619 Mon Sep 17 00:00:00 2001
From: "Alice (VasinaEY)" <vasinaky@mail.ru>
Date: Wed, 28 May 2025 16:09:22 +0300
Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?=
 =?UTF-8?q?=D0=B8=20svg?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 svg.cpp                  |  73 +++++++++++++++++++++++++++++++++++++++
 svg.h                    |  11 ++++++
 unittest/obj/Debug/svg.o | Bin 0 -> 77634 bytes
 unittest/unittest.layout |  15 ++++++++
 4 files changed, 99 insertions(+)
 create mode 100644 svg.cpp
 create mode 100644 svg.h
 create mode 100644 unittest/obj/Debug/svg.o
 create mode 100644 unittest/unittest.layout

diff --git a/svg.cpp b/svg.cpp
new file mode 100644
index 0000000..a8ec49a
--- /dev/null
+++ b/svg.cpp
@@ -0,0 +1,73 @@
+#include "svg.h"
+
+using namespace std;
+
+void
+svg_begin(double width, double height)
+{
+    cout << "<?xml version='1.0' encoding='UTF-8'?>\n";
+    cout << "<svg ";
+    cout << "width='" << width << "' ";
+    cout << "height='" << height << "' ";
+    cout << "viewBox='0 0 " << width << " " << height << "' ";
+    cout << "xmlns='http://www.w3.org/2000/svg'>\n";
+}
+
+void
+svg_end()
+{
+    cout << "</svg>\n";
+}
+
+void
+svg_text(double left, double baseline, string text)
+{
+    cout << "<text x='" << left << "' y='" << baseline << "'>" << text << "</text>";
+}
+
+void
+svg_rect(double x, double y, double width, double height, string stroke = "black", string fill = "black")
+{
+    cout << "<rect x='"<<x<<"' y='"<<y<<"' width='"<<width<<"' height='"<<height<<"' stroke='"<<stroke<<"' fill='"<<fill<<"' />";
+
+}
+
+
+
+void
+show_histogram_svg(const vector<size_t>& bins)
+{
+    const auto IMAGE_WIDTH = 400;
+    const auto IMAGE_HEIGHT = 300;
+    const auto TEXT_LEFT = 20;
+    const auto TEXT_BASELINE = 20;
+    const auto TEXT_WIDTH = 50;
+    const auto BIN_HEIGHT = 30;
+    const auto BLOCK_WIDTH = 10;
+    const auto YELLOW = "yellow";
+    const auto PURPLE = "purple";
+    const auto MAX_WIDTH = IMAGE_WIDTH-TEXT_WIDTH;
+
+
+    svg_begin(IMAGE_WIDTH,IMAGE_HEIGHT);
+
+    double top = 0;
+    double max_count = bins[0];
+    for (size_t i = 0; i < bins.size(); i++)
+    {
+        if (max_count<bins[i])
+        {
+            max_count=bins[i];
+        }
+    }
+
+    for (size_t bin : bins)
+    {
+        double bin_width = (MAX_WIDTH)*(bin/max_count);
+        svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin));
+        svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT, YELLOW, PURPLE);
+        top += BIN_HEIGHT;
+    }
+
+    svg_end();
+}
diff --git a/svg.h b/svg.h
new file mode 100644
index 0000000..1d17eb8
--- /dev/null
+++ b/svg.h
@@ -0,0 +1,11 @@
+#ifndef SVG_H_INCLUDED
+#define SVG_H_INCLUDED
+
+#include <iostream>
+#include <vector>
+#include <string>
+#include <math.h>
+using namespace std;
+void show_histogram_svg(const vector<size_t>& bins);
+
+#endif // SVG_H_INCLUDED
diff --git a/unittest/obj/Debug/svg.o b/unittest/obj/Debug/svg.o
new file mode 100644
index 0000000000000000000000000000000000000000..f0ed65d1d5f50e4a4524048d2b52dcd7d4ecca3f
GIT binary patch
literal 77634
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
K^PBL5-XLG~cKo9N

literal 0
HcmV?d00001

diff --git a/unittest/unittest.layout b/unittest/unittest.layout
new file mode 100644
index 0000000..acc1997
--- /dev/null
+++ b/unittest/unittest.layout
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_layout_file>
+	<FileVersion major="1" minor="0" />
+	<ActiveTarget name="Debug" />
+	<File name="..\histogram.h" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="227" topLine="0" />
+		</Cursor>
+	</File>
+	<File name="..\unittest.cpp" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="1327" topLine="0" />
+		</Cursor>
+	</File>
+</CodeBlocks_layout_file>